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

2011-5-11 10:04 3073 9 10 分类: 软件与OS

参考来源:unix network programing I

      我们知道,fork函数(以及它的变体)是unix系统内创建一个新进程的唯一方法,原型如下: #include<unistd.h>

pid_t fork(void)

                         returns: 0 in child,process id of child in parent,-1 on error.

        如果是第一次接触这个函数,那么这个函数最独特的地方是他被调用了一次,却有两个返回值。在父进程中返回子进程的pid,在子进程中返回0,或者返回-1表示执行出错。

         那么为什么要这么安排呢?为什么不在子进程中返回父进程的pid或者在父进程中返回0呢?原因大致如下: 每一个子进程只有一个唯一的父进程,子进程总是可以通过调用getppid函数获得父进程的pid,但是一个父进程可以有很多个子进程,它通过其他方式获得某一个指定的子进程的pid,所以通过返回子进程的pid来保持对子进程的记录。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户377235 2014-2-20 10:37

它通过其他方式获得某一个指定的子进程的pid ,是不是错了? 它无法通过其他方式获得某一个指定的子进程的pid。

相关推荐阅读
用户235394 2011-07-09 21:17
你根本不会休息(转)
为什么你睡了11个小时仍然觉得疲累? 为什么你花了好几万去岛国度假并没有增加生活的热情? 都说要去KTV,去夜店,去游乐园就能忘掉不快,更带劲地开始新的一天,但是尽兴归来心里只剩空虚? 我们真的明...
用户235394 2011-06-26 21:17
将数组元素分成两部分,再整体交换位置
昨日去某公司笔试,碰到一个题如下:     对于一个数组,已知其长度为n,和一小于n的正整数p,将该数组的前p个元素和后面的元素交换一下位置,例如a[15]={1,2,3,4,5,6,7,8,9,1...
用户235394 2011-06-20 21:56
《赢在测试》第一章小结
1.人要勤奋 2.人在专心的时候不会感到孤独 3.主动找活干 4.跳槽要有明确的目的,并且对自己要有清晰的定位 5.通过自己反省,来提高自己的能力 6.我们要不停的评估自己的价值 7.软件测试业是不...
用户235394 2011-06-13 16:18
vmware下ubuntu10.04与WinXp共享文件夹hgfs为空的解决办法
  心血来潮要玩一把LFS,于是在vmware下整了个ubuntu系统专门做这个。在安装完虚拟机工具后/mnt/hgfs目录挂载成功,可是在vm中添加了共享文件夹后hgfs依然为空,在网上搜了下,解决...
用户235394 2011-06-13 10:15
批量检验文件md5值
   脚本不是一门放在书上或者技术手册上瞻仰的东西,我们学习它是因为它能给我们的学习工作带来巨大的便利。那么在平时,就应该有随时用脚本完成一些工作的意识。例如,在做lfs时,下载了一大堆的tarbal...
用户235394 2011-06-03 19:43
字符串指针与字符数组的区别
参考文献:《C专家编程》        相信很多同学在初学编程时对char *a=”abcd”和char a[]=”abcd”混淆过,甚至某些教材根本不提其区别,只有在实际编程中出现运行时错误才会...
EE直播间
更多
我要评论
1
9
关闭 站长推荐上一条 /3 下一条