C:运行系统命令并获取输出?

可能重复:
我怎样才能从C运行一个外部程序,并parsing其输出?

我想在Linux中运行一个命令,并获取它输出的文本,但我希望这个文本打印到屏幕上。 有没有比临时文件更优雅的方式?

你想要“ popen ”function。 下面是一个运行命令“ls / etc”并输出到控制台的例子。

#include <stdio.h> #include <stdlib.h> int main( int argc, char *argv[] ) { FILE *fp; char path[1035]; /* Open the command for reading. */ fp = popen("/bin/ls /etc/", "r"); if (fp == NULL) { printf("Failed to run command\n" ); exit(1); } /* Read the output a line at a time - output it. */ while (fgets(path, sizeof(path)-1, fp) != NULL) { printf("%s", path); } /* close */ pclose(fp); return 0; } 

你需要某种内部进程通信。 使用pipe道或共享缓冲区。

通常,如果该命令是外部程序,则可以使用操作系统来帮助您。

 command > file_output.txt 

所以你的C代码会做类似的事情

 exec("command > file_output.txt"); 

然后你可以使用file_output.txt文件。