以下代码调用except脚本,该脚本通过ftp将文件复制到服务器。
int status;
int child_pnr;
if((child_pnr = fork())==0)
{
printf("Childnr %i\n",child_pnr);
execv("/home/..../ftptest.exp",NULL);
}
else if (child_pnr > 0)
{
printf("Parent... childnr %i generated\n",child_pnr);
sleep(7);
}
else
perror("fork() error");
由于execv()将在执行后终止,因此我为此函数生成了一个子进程。如果我没有睡眠(7),为什么ftptest.exp会从父母中断?
答案 0 :(得分:2)
通过“中断”,我认为你的意思是父母在做下一步之前不等待孩子完成操作?
父和子将在fork之后并行运行。如果您希望父母在孩子完成之前“挂起”,那么您需要wait
。
请参阅man wait
并在互联网上搜索fork示例。