对waitpid 的学习

简介:

上代码

学习网络上的文章,http://blog.sina.com.cn/s/blog_602a39250100xfxx.html  非常感谢

但是和我的环境有点不一样,我简单改了改程序:

复制代码
 
[root@localhost wait]# cat waittest.c
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
#include<stdlib.h>
main()
{
    pid_t pc, pr; 
    pc=fork();
    if(pc<0)  
      printf("Error occured on forking.\n");
    else if(pc==0)
    {  
      sleep(4); 
      exit(0);
    }
    
    do
    {
       pr=waitpid(pc, NULL, WNOHANG); 
       if(pr==0)
       {   
          printf("No child exited\n");
          sleep(1);
       }
    }while(pr==0);
    
    if(pr==pc)
         printf("successfully release child %d\n", pr);
    else
         printf("some error occured\n");
}
[root@localhost wait]# 
复制代码

结束






本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/10/31/2747894.html,如需转载请自行联系原作者

目录
相关文章
|
C语言
C语言 父进程fork()出的多个子进程在结束后,父进程如何回收?
我在网上找了半天都是在说wait()和waitpid()的详解或者是单个子进程的回收。答非所问。 很简单,根据wait()或者waitpid()的函数特性。没有子进程时返回-1。
89 0
|
7月前
【进程控制】超详细讲解wait和waitpid的原理(结合代码)
【进程控制】超详细讲解wait和waitpid的原理(结合代码)
|
7月前
|
算法 Unix Linux
Linux系统编程(vfork和fork)
Linux系统编程(vfork和fork)
108 0
|
程序员 Linux Shell
【CSAPP】进程控制 | 系统调用错误处理 | 进程状态 | 终止进程 | 进程创建 | 回收子进程 | 与子进程同步(wait/waitpid) | execve 接口
【CSAPP】进程控制 | 系统调用错误处理 | 进程状态 | 终止进程 | 进程创建 | 回收子进程 | 与子进程同步(wait/waitpid) | execve 接口
261 0
孤儿进程、僵尸进程和进程退出(通俗易懂)
孤儿进程、僵尸进程和进程退出(通俗易懂)
|
Linux
wait() 函数和 waitpid() 函数
wait() 函数和 waitpid() 函数
755 0
wait() 函数和 waitpid() 函数
|
物联网 Linux 开发者
Waitpid 函数|学习笔记
快速学习 Waitpid 函数,“Waitpid 函数”,也是“等”。虽然功能和 “Wait” 相同,但是 “Waitpid” 实现的功能比 “Wait” 实现的功能更多。
|
算法 物联网 Linux
|
算法 物联网 Linux
创建进程 fork 函数|学习笔记
快速学习创建进程 fork 函数
创建进程 fork 函数|学习笔记