我想使用system()从C程序内部执行一些可执行文件。我想确保命令完全执行;之后,我想使用以前执行的命令的输出。例如:

{
  ...
  ...
  sprintf(cmd, "./a1.out > temp.txt");
  system(cmd);
  fp = fopen("temp.txt", "r");
  ...
  ...
}

在本例中,不能确保在打开文件进行读取之后完全执行cmd。而且,我想确保这一点。有什么帮助吗?

最佳答案

您可以使用popen()执行命令并直接读取其输出。

fp = popen("./a1.out", "r");
if (fp) {
    ...
    r = pclose(fp);
    if (r < 0) {
        /*...command exited abnormally */
    }
} else {
    /*...fork or pipe error */
}

如果需要,可以选择将数据写入文件。

关于c - 从程序内部使用“system()”调用命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18374689/

10-11 23:13
查看更多