关于fork()函数问题

2025-04-12 23:19:28
推荐回答(2个)
回答(1):

三言两语说不清楚,回去仔细看书,看书上的例子,在没看懂书上例子之前,不要自己乱写程序。
你看懂了后,就不会这样乱写fork()程序了。
简单说一下:fork()就是一分二,返回值为0的是子进程。返回值-1,表示fork失败。返回值是大于0的是父进程。
int main()
{
int pid=fork();
if ( pid < 0 )
{
失败,退出!
exit(-1);
}
if ( !pid )
{
child_do;
exit(0); //子进程工作完成后就要退出程序,不要再走到父进程的工作区了。这点很重要!!
}
//这里是父进程的天下
printf("pid=%d\n",pid );
parent_go_on;
return 0;
}

回答(2):

代码错了
while((p1==fork())==-1);

改为
while((p1=fork())==-1);