加入收藏 | 设为首页 | 会员中心 | 我要投稿 孝感站长网 (https://www.0712zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

[编程] C语言Linux系统编程-等待终止的子进程(僵死进程)

发布时间:2021-02-20 10:37:25 所属栏目:Linux 来源:网络整理
导读:1. 如果一个子进程在父进程之前结束,内核会把子进程设置为一个特殊的状态,处于这种状态的进程称为僵死进程 当父进程获取了子进程的信息后,子进程才会消失。 pid_t wait(int *status); pid #include /spanspan style="color: #0000ff"gt;int/span ret=span

1.

如果一个子进程在父进程之前结束,内核会把子进程设置为一个特殊的状态,处于这种状态的进程称为僵死进程

当父进程获取了子进程的信息后,子进程才会消失。

pid_t wait(int *status);

pid

#include </span><span style="color: #0000ff"&gt;int</span> ret=<span style="color: #000000"&gt;fork(); </span><span style="color: #0000ff"&gt;if</span>(ret><span style="color: #800080"&gt;0</span><span style="color: #000000"&gt;){ pid</span>=<span style="color: #000000"&gt;getpid(); ppid</span>=<span style="color: #000000"&gt;getppid(); printf(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;我是父进程,pid=%d,ppid=%d,我新建的子进程pid=%dn</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;,pid,ppid,ret); </span><span style="color: #0000ff"&gt;int</span><span style="color: #000000"&gt; status; </span><span style="color: #0000ff"&gt;int</span> sonPid=wait(&amp;<span style="color: #000000"&gt;status); printf(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;我的子进程,pid=%d,终止了n</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;,sonPid); }</span><span style="color: #0000ff"&gt;else</span> <span style="color: #0000ff"&gt;if</span>(ret==<span style="color: #800080"&gt;0</span><span style="color: #000000"&gt;){ sleep(</span><span style="color: #800080"&gt;2</span><span style="color: #000000"&gt;); pid</span>=<span style="color: #000000"&gt;getpid(); ppid</span>=<span style="color: #000000"&gt;getppid(); printf(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;我是子进程,pid=%d,ppid=%d n</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;,ppid); }</span><span style="color: #0000ff"&gt;else</span> <span style="color: #0000ff"&gt;if</span>(ret==-<span style="color: #800080"&gt;1</span><span style="color: #000000"&gt;){ perror(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;fork</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;); }

}

输出:

pid=22315,ppid=12479,

pid=22316,ppid=22315

pid=22316,

2.

(编辑:孝感站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读