标签:进程 src for 相同 共享 值类型 ima 节点 持续更新
这句话讲的是子进程的数据和代码运行情况,子进程会带着父进程直到fork处的所有变量的值,继续执行fork后的代码。
就像鸣人的影分身,被人砍了一刀之后发现一个人干不过对方,
于是使用fork影分身,分身被召唤时说“是兄弟就来砍我”,于是分身就带着被砍的一刀出现了,(父子进程的数据、堆栈段相同)
之后鸣人和分身一起搓丸子,(代码段共享,执行的代码相同)
分身在左,鸣人在右,(通过if(fork){……}将父子进程需要执行的代码进行区分)
搓完丸子后,分身被砍死,鸣人带着丸子干死敌人,鸣人胜利了。(实际上父子进程的运行顺序并不一定,结束顺序也不一定,通常子进程先运行先结束)
纯属扯淡,看看就行~~
返回值类型:pid_t,相当于int,
fork在调用的两个进程中都会有返回值,即父进程调用fork一次,父子进程都有返回值,
可以将父子进程当成链表,旧结点使用fork在链尾增加结点,并返回新增节点的序号,由于新增节点没有继续fork,则会返回0。
总结,fork的神奇之处在于返回值和功能(好像函数也就这两点比较重要吧)
这里的返回值需要和fork返回值进行区分,fork父进程返回的是被创建的子进程的pid,子进程返回0。
标签:进程 src for 相同 共享 值类型 ima 节点 持续更新
原文地址:https://www.cnblogs.com/lylhome/p/13336644.html