【发布时间】:2013-06-11 04:46:09
【问题描述】:
我想在我的代码中使用的程序是一个命令行工具。
用户先输入./program,然后用户就可以使用程序提供的一些命令了。
我想在我的源代码中执行两个命令(myCode.cpp):
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int i;
printf ("Checking if processor is available...");
if (system(NULL)) puts ("Ok");
else exit (EXIT_FAILURE);
printf ("Executing command ...\n");
system ("./program");
system ("command1");
system ("command2");
return 0;
}
执行我的程序(./myCode)后,程序启动了,但两条命令没有执行。
这两个命令如何执行?
如何终止程序然后执行我的以下代码行? (在system()之后)
【问题讨论】:
-
您检查过 system() 报告的哪些错误?
-
system命令在 shell 中执行其参数,因此您的每个调用都独立于其他调用;他们不会将这两个命令传递给程序。请参阅 linux.die.net/man/3/popen 了解如何在 C 程序和./program之间打开管道。 -
要了解如何通过双向通信启动新进程,请参阅stackoverflow.com/questions/5094063/…
标签: c multithreading terminal system-calls