【问题标题】:Why does fork return 0 for child and return the child's PID for parent and not VICE VERSA?为什么 fork 为孩子返回 0 而为父母返回孩子的 PID 而不是 VICE VERSA?
【发布时间】:2015-04-28 12:17:00
【问题描述】:

我知道,当您调用 fork() 时,会创建一个子进程,并向子进程返回值 0,并将子进程的进程 ID 返回给父进程。否则返回-1值给父进程,不 创建子进程,并设置全局变量errno来指示错误。 (How does fork() return for child process)

我知道这是因为我的教授对我说的,我可以搜索网络并获得答案等。但我找不到为什么反之亦然?

例如父母得到0和孩子12867235。有人对此有很好的解释吗?

提前谢谢,请原谅我的英语。

【问题讨论】:

    标签: process fork child-process


    【解决方案1】:

    父进程中fork()的返回值,是父进程获取子进程PID的方式。

    子进程不需要从 fork() 调用中找到它的 PID,因为它可以调用 getpid(),并通过 getppid() 找到其父进程的 PID。

    【讨论】:

      猜你喜欢
      • 2017-02-14
      • 1970-01-01
      • 2022-12-03
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多