如何在C中捕获过程输出?

C中有没有类似PHP的系统

man system说,该system返回命令的状态,但我需要输出(如在PHP中)。

当然,我可以使用pipe道,但有没有标准的方法?

您可以使用popen和相关的功能:

 // command to be run. char *cmd = "date"; // open pipe stream. FILE *fp = popen(cmd,"r"); int ch; // error checking. if(!fp) { fprintf(stderr,"Error popen with %s\n",cmd); exit(1); } // read from the process and print. while((ch = fgetc(fp)) != EOF) { putchar(ch); } // close the stream. pclose(fp); 

Ideone链接

如果你需要命令的输出,你可以在Unix上使用popen() (用“r”来表示你想从命令中读取)。

 FILE *fp = popen("some -convoluted command", "r"); ...check for validity... ...read data from command... pclose(fp);