【发布时间】:2013-09-26 18:23:04
【问题描述】:
这是我的代码:
void function_exists(int foo)
{
char bar[10] = "/bin/";
int baz;
strncat(bar,act_arg[0],sizeof(act_arg[0]));
if(fork() == 0)
{
printf("\n");
baz = execlp(bar,act_arg[0],NULL);
if(baz == -1)
{
foo++;
wait(NULL);
}
else
{
wait(NULL);
exit(0);
}
}
fflush(stdout);
printf("Hello");
}
我正在尝试从 execlp 返回控件,我知道它不会返回值,除非出现错误,所以我使用了 fork。但是当我执行代码时,首先打印 hello。为什么会发生这种情况?
和
有没有一种方法可以让 exec 返回或任何其他对我做同样事情的系统调用。现在我按下回车键,我的程序接管了,但我想这样做而不必按下回车键。
我没有足够的代表来发布图片,所以这里是我的输出的链接: http://tinypic.com/r/6szw52/5
【问题讨论】:
-
你可以试试 popen() 而不是 exec。
-
我查看了它并找到了一个我可以使用它的地方,所以谢谢先生
标签: c exec system-calls