父进程用fork创建子进程之后,父子进程之间有什么关系?

 我来答
程序员老四
推荐于2018-11-20 · TA获得超过164个赞
知道答主
回答量:131
采纳率:100%
帮助的人:52.2万
展开全部
fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:
1)在父进程中,fork返回新创建子进程的进程ID;
2)在子进程中,fork返回0;
3)如果出现错误,fork返回一个负值;
在fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进程。在子进程中,fork函数返回0,在父进程中,fork返回新创建子进程的进程ID。我们可以通过fork返回的值来判断当前进程是子进程还是父进程。
引用一位网友的话来解释fpid的值为什么在父子进程中不同。“其实就相当于链表,进程形成了链表,父进程的fpid(p 意味point)指向子进程的进程id, 因为子进程没有子进程,所以其fpid为0.
来自:求助得到的回答
老球痞pro
2019-05-11
知道答主
回答量:17
采纳率:0%
帮助的人:8511
展开全部

fork操作之后,父进程和子进程到底发生了什么?

子进程从拷贝了哪些信息?从哪里开始执行?这些答案在《UNIX系统编程》第24章进程的创建

有很好的回答。

fork之后父子进程同时从fork点开始执行、

父子进程共享代码段,数据段都是完全拷贝,相互之间的更改不会影响。

但是值得注意的是socket是共享的

我之前遇到过socket共享所导致的问题,所以如果你要想用fork,得弄清楚这些

推荐看《UNIX系统编程》第24章进程

这个地址有pdf文档下载:网页链接

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式