我在 C 程序中连续进行了 3 个 fork 。
1.它会以相同的顺序执行吗? (我的猜测是肯定的)。
2. 如果我做 pgrep myexecutable
从 shell 中,它会按照启动的顺序给出进程 ID 吗? (我的猜测是否定的,因为你不能保证系统给 child 什么 pid,对吧?)
最佳答案
执行 3 个 fork 后总共会运行 8 个进程
所以现在pid将取决于创建子进程的顺序以及创建子进程的顺序。
可能就像
main - 12345
child1_of_main_after_fork1 12346
child2_of_child1_after_fork2 12347
child3_of_main_after_fork2 12348
child4_of_main_after_fork3 12349
child5_of_child1_after_fork3 12350
child6_of_child2_after_fork3 12351
child7_of_child3_after_fork3 12352
关于pid - fork() 之后的 PID 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5002036/