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

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

时间:2018-09-02 18:37:08      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:进程   ror   span   turn   main   roc   print   lib   exit   

技术分享图片

 

本例中使用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:进程在运行\n",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\n");
23                 sleep(1);
24             }
25         }while(ret==0);
26 
27         if(pid==ret){
28         
29             printf("child process exit\n");
30         }
31     }
32 
33 
34     return 0;
35 }

技术分享图片

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

标签:进程   ror   span   turn   main   roc   print   lib   exit   

原文地址:https://www.cnblogs.com/lanbofei/p/9574305.html

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