电子大神的日记本,供应链专家的功夫茶盘,在这里记录、分享与共鸣。

登录以开始

为什么fork在父子进程中的返回值是这个样子?

<p>参考来源:unix network programing I</p>
<p>      我们知道,fork函数(以及它的变体)是unix系统内创建一个新进程的唯一方法,原型如下: #include<unistd.h></p>
<p>pid_t fork(void)</p>
<p>                         returns: 0 in child,process id of child in parent,-1 on error.</p>
<p>        如果是第一次接触这个函数,那么这个函数最独特的地方是他被调用了一次,却有两个返回值。在父进程中返回子进程的pid,在子进程中返回0,或者返回-1表示执行出错。</p>
<p>         那么为什么要这么安排呢?为什么不在子进程中返回父进程的pid或者在父进程中返回0呢?原因大致如下: 每一个子进程只有一个唯一的父进程,子进程总是可以通过调用getppid函数获得父进程的pid,但是一个父进程可以有很多个子进程,它通过其他方式获得某一个指定的子进程的pid,所以通过返回子进程的pid来保持对子进程的记录。</p>

博主
fangpengwansui
fangpengwansui's Blog
一个人之所以变的强大,不在于他在做什么,而在于他在努力尝试去做什么。
点击跳转