为什么fork返回子进程为0,父进程返回子进程的PID而非反之?

3
我知道当你调用fork()时,会创建一个子进程,返回值为0给子进程,并将子进程的进程ID返回给父进程。否则,将返回-1给父进程,不会创建子进程,并设置全局变量errno来指示错误。(fork()对于子进程如何返回
我知道这是因为我的教授告诉了我,我可以搜索网络并得到答案等等。但是我找不到为什么反过来不行?
例如父级获取0而子级获取12867235。有没有人有一个好的解释?
先感谢你并请原谅我的英语。
1个回答

4

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

子进程不需要从 fork() 调用中获取自己的 PID,因为它可以调用 getpid() 获取自己的 PID,并使用 getppid() 获取其父进程的 PID。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接