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

Posted lylhome

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录几个进程控制相关函数相关的知识,希望对你有一定的参考价值。

持续更新~

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。

 

以上是关于记录几个进程控制相关函数的主要内容,如果未能解决你的问题,请参考以下文章

进程控制---子进程终止状态相关的宏

进程控制

进程控制---更改进程的用户ID和组ID

Linux进程控制

Linux进程控制

Linux进程控制