当前位置: 技术问答>linux和unix
请教一个多进程编程问题
来源: 互联网 发布时间:2015-09-27
本文导语: 目前正在学Unix上的编程。一个有关进程编程的问题不太清楚。请教。 pid=fork(); if(pid==0) { //exec() exit(0); } else if(pid1=0) { wait(); } 用exec系统调用的程序代码大致如下 int main(void) { //... return 0;//这...
目前正在学Unix上的编程。一个有关进程编程的问题不太清楚。请教。
pid=fork();
if(pid==0)
{
//exec()
exit(0);
}
else if(pid1=0)
{
wait();
}
用exec系统调用的程序代码大致如下
int main(void)
{
//...
return 0;//这里只有return 而没有exit
}
此时,exec调用的程序完全替换了子进程,这么说也替换了下面的exit(0).而它调用的程序没有用exit()结束。总的来说,子进程没有调用exit(),这样是否会产生僵尸进程?(按教材上说的,1.exec会替换整个进程 2.子进程没有使用exit()会导致僵尸进程问题。)
谢谢。
pid=fork();
if(pid==0)
{
//exec()
exit(0);
}
else if(pid1=0)
{
wait();
}
用exec系统调用的程序代码大致如下
int main(void)
{
//...
return 0;//这里只有return 而没有exit
}
此时,exec调用的程序完全替换了子进程,这么说也替换了下面的exit(0).而它调用的程序没有用exit()结束。总的来说,子进程没有调用exit(),这样是否会产生僵尸进程?(按教材上说的,1.exec会替换整个进程 2.子进程没有使用exit()会导致僵尸进程问题。)
谢谢。
|
在main函数中调用return与exit结果是相同的,进程都是被终止了,教科书的意思是子进程必须被终止,而不是僵硬的必须调用exit()