我有一个简单的C程序,它使用fork()和execl()运行一个应用程序(" flute-static")两次(在for循环的帮助下)。应用程序本身是交互式的,即它使用shell从用户获取输入并打印输出。如果我正常运行该程序没有问题发生。但是当我从后台运行C程序时,主程序停止。这是程序。
int main()
{
int i, pid;
for (i=0; i<2; i++)
{
pid = fork();
if (pid == -1)
{
printf("\nerror, failed to fork()");
}
else if (pid > 0)
{
}
else
{
/*we are the child*/
execl("./flute-static", "./flute-static", "-send", "-a192.168.190.1", "/", "6666", "JFlute.1.2.tar.gz", NULL);
exit(1);
}
}
while(1)
{
}
return 0;
}
运行程序的输出是:
[root@localhost Flute]# ./a.out&
[3] 2643
[root@localhost Flute]#
[3]+ Stopped ./a.out
为什么会这样?我该如何解决这个问题?请帮忙。