pid - fork() 之后的 PID 是什么?

标签 pid fork

我在 C 程序中连续进行了 3 个 fork 。
1.它会以相同的顺序执行吗? (我的猜测是肯定的)。
2. 如果我做 pgrep myexecutable从 shell 中,它会按照启动的顺序给出进程 ID 吗? (我的猜测是否定的,因为你不能保证系统给 child 什么 pid,对吧?)

最佳答案

执行 3 个 fork 后总共会运行 8 个进程

enter image description here

所以现在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/

相关文章:

python - 如何使用日志记录模块记录我的进程ID

bash - 将标准输出重定向到包含日志进程 pid 的文件

c - 获取PID,当有程序名片段时

linux - Bash Shell 脚本 : what simple logic am I missing

c - 读取由 exec() 用 C 创建的子管道

c - 通过管道写入 FILE*

c - fork() 导致为每个进程打印列标题

java - 如何阻止 cron 作业创建 attach_pid 文件?

c - fork() 示例程序。需要解释

c++ - 在 C++ 中 fork 和 kill 导致 ubuntu 崩溃