我想使用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/