码迷,mamicode.com
首页 > 系统相关 > 详细

记录几个进程控制相关函数

时间:2020-07-18 22:10:40      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:进程   src   for   相同   共享   值类型   ima   节点   持续更新   

持续更新~

fork

作用:复制父进程的资源,创建子进程。父子进程的数据、堆栈段相同,代码段共享。

这句话讲的是子进程的数据和代码运行情况,子进程会带着父进程直到fork处的所有变量的值,继续执行fork后的代码。

技术图片

 

就像鸣人的影分身,被人砍了一刀之后发现一个人干不过对方,

于是使用fork影分身,分身被召唤时说“是兄弟就来砍我”,于是分身就带着被砍的一刀出现了,(父子进程的数据、堆栈段相同)

之后鸣人和分身一起搓丸子,(代码段共享,执行的代码相同)

分身在左,鸣人在右,(通过if(fork){……}将父子进程需要执行的代码进行区分)

搓完丸子后,分身被砍死,鸣人带着丸子干死敌人,鸣人胜利了。(实际上父子进程的运行顺序并不一定,结束顺序也不一定,通常子进程先运行先结束)

纯属扯淡,看看就行~~

 

 

返回值类型:pid_t,相当于int,

pid_t类型变量初始化时值为0。

 

返回值:fork调用一次,返回两次,返回值有三种。

fork在调用的两个进程中都会有返回值,即父进程调用fork一次,父子进程都有返回值,

而返回值可能的取值有三种,正数(父进程中的返回值,等于子进程的pid)、0(子进程中的返回值)、负数(error,没出现过这种情况)

可以将父子进程当成链表,旧结点使用fork在链尾增加结点,并返回新增节点的序号,由于新增节点没有继续fork,则会返回0。

 

 

总结,fork的神奇之处在于返回值和功能(好像函数也就这两点比较重要吧)

 

getpid

返回值:返回当前进程的pid,

这里的返回值需要和fork返回值进行区分,fork父进程返回的是被创建的子进程的pid,子进程返回0。

 

记录几个进程控制相关函数

标签:进程   src   for   相同   共享   值类型   ima   节点   持续更新   

原文地址:https://www.cnblogs.com/lylhome/p/13336644.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!