关于一道fork生成子进程的题目
程序员文章站
2022-03-22 13:14:28
题目如下: 求最后的输出结果: 这道题当时没分清楚,太菜了,结果应该这样推出来, 首先弄清楚fork()返回值,在父进程中是一个非0数,子进程中则是0, 所以pid1可以分为两类值非0和0, (1)pid1非0,pid2同理有两种取值,0或者非0, (2)pid1为0,表示是子进程,则pid2同样是 ......
题目如下:
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
或者其他顺序
代码运行结果如下:
下一篇: 深入理解移动前端开发之viewport