关于一道fork生成子进程的题目

2019-08-19 08:46:55来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

关于一道fork生成子进程的题目

 

题目如下:

pid_t pid1,pid2;
pid1=fork();
pid2=fork();
if(pid1<0||pid2<0)
{
    printf("Fork Failed\n");
}
else
{
    printf("pid1: %d pid2: %d\n",pid1,pid2);
}
return 0;

求最后的输出结果:

这道题当时没分清楚,太菜了,结果应该这样推出来,

首先弄清楚fork()返回值,在父进程中是一个非0数,子进程中则是0,

所以pid1可以分为两类值非0和0,

(1)pid1非0,pid2同理有两种取值,0或者非0,

(2)pid1为0,表示是子进程,则pid2同样是0和非0两种取值

综上最后的结果应该是

x 0

x y

0 0

0 k

或者其他顺序

代码运行结果如下:

 


原文链接:https://www.cnblogs.com/JsonZhangAA/p/11374002.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:【原创】Linux PSCI框架

下一篇:日志文件写入失败(permission denied)