多进程——waitpid()函数的小例子

Posted lanbofei

tags:

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

技术分享图片

 

本例中使用fork()创建一个子进程,然后让子进程暂停5s,接下来对原有的父进程使用waitpid()函数,利用WNOHANG使父进程不会阻塞每隔一秒判断子进程是否退出。

 

 1 #include"my.h"
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 int main(){
 5     pid_t pid,ret;
 6     if((pid=fork())<0){
 7 
 8         perror("fork ERROR!");
 9         return 1;
10     }else if(pid==0){
11 
12         printf("%d:进程在运行
",getpid());
13         sleep(10);
14         exit(0);
15     }else if(pid>0){
16 
17         do{
18 
19             ret=waitpid(pid,NULL,WNOHANG);
20             if(ret==0){
21 
22                 printf("the child prociess has no exited
");
23                 sleep(1);
24             }
25         }while(ret==0);
26 
27         if(pid==ret){
28         
29             printf("child process exit
");
30         }
31     }
32 
33 
34     return 0;
35 }

技术分享图片

以上是关于多进程——waitpid()函数的小例子的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统下进程回收--waitpid函数

进程控制---wait 和 waitpid 函数详解

wait,waitpid学习测试

函数wait和waitpid

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

wait()函数和waitpid()函数详解