能力值:
( LV2,RANK:10 )
|
-
-
2 楼
wait函数的问题,你fork过后没有wait wait通常与fork同时出现,这里查阅资料得知 在fork函数执行前,只有一个进程在执行这段代码,在这fork过后,就变成两个进程在执行了,两个进程代码完全相同,将要执行的都是下一句,同时子进程fork的返回值这里也就是fpid跟父进程的fpid不相同, 子进程的fpid为0, 而父进程的fpid为新创建子进程的进程id,所以需要在else阶段阻塞父进程,等待子进程执行完毕过后在继续父进程,不然会直接结束
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
TopGreen
wait函数的问题,你fork过后没有wait
wait通常与fork同时出现,这里查阅资料得知
在fork函数执行前,只有一个进程在执行这段代码,在这fork过后,就变成两个进程在执行了,两个进 ... 抱歉,我代码改格式之后好像漏了两行 iterate.c line 19-20(已经重新编辑)。我觉得应该不是wait的关系,就算不wait,子程序也算独立的程序会一直运行知道子程序自己退出,这里我的问题是我在GDB里面看到printf执行成功了,但是在stdout上没有任何输出。
最后于 2020-6-20 09:30
被B1GJ0hn编辑
,原因:
|
|
|