从子进程的标准输出获取信息

在unix c编程中,有时需要在程序中运行一个子进程,然后获取其输出,并作相应的处理.通常想到的方法是,创建管道,然后使用fork和exec系列函数启动一个子进程,然后父子进程通过管道进行通信.

一个更简便的方法是,使用popen函数:

f = popen (tmp, "r"); if (f == NULL) { PRINT_MSG ("(critical) Cannot execute '%s'/n", tmp); goto error; } while (! feof(f)) { /* Skip line until it found the version entry */ line = fgets (tmp, sizeof(tmp), f); if (line == NULL) continue; line = strstr (line, "Version: "); if (line == NULL) continue;

你可能感兴趣的:(编程,c,unix,null)