【问题标题】:value returned by the fork() system callfork() 系统调用返回的值
【发布时间】:2014-09-12 20:19:37
【问题描述】:

为什么fork()系统调用不将父进程ID返回给子进程,不返回零给父进程?

pid_t pid;
pid = fork();

在本节中,对于子进程,fork() 的返回码为零,子进程的(非零)进程 ID 是返回给父进程的。

如何从孩子那里找出父母的PID?

【问题讨论】:

标签: process fork


【解决方案1】:

你可以在执行 fork() 之前保存它。 fork() 用于返回在 fork 完成之前不知道的 id。

【讨论】:

    【解决方案2】:

    您始终可以在分叉之前获取父级的 PID,并将其保存在变量中。分叉后也一样。 运行:

    pid_t parent;
    ....
    parent = getpid();
    pid = fork(); //If pid is 0 your parent's pid is in parent
    

    【讨论】:

      猜你喜欢
      • 2021-02-18
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 2012-10-07
      • 1970-01-01
      • 2012-03-10
      • 2011-06-10
      • 1970-01-01
      相关资源
      最近更新 更多