【发布时间】:2014-09-12 20:19:37
【问题描述】:
为什么fork()系统调用不将父进程ID返回给子进程,不返回零给父进程?
pid_t pid;
pid = fork();
在本节中,对于子进程,fork() 的返回码为零,子进程的(非零)进程 ID 是返回给父进程的。
如何从孩子那里找出父母的PID?
【问题讨论】:
为什么fork()系统调用不将父进程ID返回给子进程,不返回零给父进程?
pid_t pid;
pid = fork();
在本节中,对于子进程,fork() 的返回码为零,子进程的(非零)进程 ID 是返回给父进程的。
如何从孩子那里找出父母的PID?
【问题讨论】:
你可以在执行 fork() 之前保存它。 fork() 用于返回在 fork 完成之前不知道的 id。
【讨论】:
您始终可以在分叉之前获取父级的 PID,并将其保存在变量中。分叉后也一样。 运行:
pid_t parent;
....
parent = getpid();
pid = fork(); //If pid is 0 your parent's pid is in parent
【讨论】: