这是我的代码:
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 返回或任何其他对我做同样事情的系统调用。现在我按 enter 并且我的程序接管但我想这样做而不必按 enter。
我没有足够的代表来发布图片,所以这里是我的输出的链接:http: //tinypic.com/r/6szw52/5