#include<stdio.h>
#include<stdlib.h>
#include <unistd.h>
//waitpid  WNOHANG
int main(void)
{printf("main process pid = %d\n",getpid());int status;pid_t pid;pid = fork();//创建子进程if(pid < 0){perror("fork error");exit(1);//结束进程}if(pid == 0){printf("子进程pid = %d\n",getpid());sleep(3);printf("********\n");exit(2);}if(pid > 0){printf("父进程pid = %d\n",getpid());//waitpid(pid,&status,0);//等同wait(&status);//WNOHANG,waitpid()不阻塞而且立即返回,返回值为0while(waitpid(pid,&status,WNOHANG) == 0){printf("-----子进程运行中-----\n");sleep(1);}//判断子进程结束状态if(WIFEXITED(status))//进程正常结束{printf("normal exit status = %d\n",WIFEXITED(status));}if(WIFSIGNALED(status))//进程异常终止{printf("recv signal exit\n");}printf("-------------\n");exit(1);}return 0;
}
/*
$ ./a.out
main process pid = 24977
父进程pid = 24977
-----子进程运行中-----
子进程pid = 24978
-----子进程运行中-----
-----子进程运行中-----
********
-----子进程运行中-----
normal exit status = 1
-------------
*/

waitpid WNOHANG相关推荐

  1. Linux:进程管理 | 进程创建 | 进程终止 | 进程等待 | 进程替换

    文章目录 进程创建 fork 写时拷贝机制 进程终止 退出码 进程退出方法 进程等待 阻塞.非阻塞的等待 进程替换 替换函数 exec l exec lp exec le exec ve exec v ...

  2. 【Linux网络编程】UDP 套接字编程

    [Linux网络编程]UDP 套接字编程 [1]用户数据报协议(UDP) UDP是一个简单的传输层协议,不保证UDP数据报会到达其最终目的地,不保证各个数据报的先后顺序跨网络后保持不变,也不保证每个数 ...

  3. linux系统/网络编程

    经典数据: APUE:unix环境高级编程3版 linux系统编程手册 德 linux系统编程 oreily unix内核源码剖析 日 windows核心编程 linux系统开发模式: ssh远程登录 ...

  4. 从kernel源代码的角度分析signal的错误用法和理解

    读这份文档之前,建议先浏览一下 <Unix Advanced Programming >里面的signal 一章和下面这份出 自IBM 论坛的文章:进程间通信 信号(上) http://w ...

  5. 对while((pid = waitpid(-1, stat, WNOHANG)) 0)不懂的地方,现在懂了

    while((pid = waitpid(-1, &stat, WNOHANG)) > 0) 需要写到信号处理函数中,假如有10个子进程 只要父进程能够收到最后一个信号,就能把前面丢失的 ...

  6. Linux wait() 和 waitpid()函数介绍

    转载自http://blog.csdn.net/wallwind/article/details/6998602 当一个进程正常或异常终止的时候,内核就像其父进程发送SIGCHLD信号,因为子进程是个 ...

  7. Linux环境编程--waitpid与fork与execlp

    waitpid waitpid(等待子进程中断或结束) 表头文件 #include<sys/types.h> #include<sys/wait.h> 定义函数 pid_t w ...

  8. linux 进程等待 wait 、 waitpid

    waitpid() 与 wait() 功能相似,都是用户主进程等待子进程结束或中断. 可用于进程之间的同步 wait 函数原型 pid_t wait(int *status); 函数说明 wait() ...

  9. 【转】linux中waitpid及wait的用法

    原文网址:http://www.2cto.com/os/201203/124851.html wait(等待子进程中断或结束) 表头文件 #include<sys/types.h> #in ...

最新文章

  1. Android应用--QR的生成(二维码)
  2. Ubunt php连接oracle,uBuntu PHP Oracle扩展 OCI8安装
  3. ios一个app调起另一个app_电商app开发价格:制作一个电商app需要多少钱?
  4. 世界机器人大会进入最后一天,最受市民关注的是它!
  5. linux运维安全方案,LINUX 安全运维 (一)
  6. WCF 附录 高级主题 系列文章
  7. 在银行存款被吞了,怎么能快速解决?
  8. macos server 恢复安装_如何通过 macOS 恢复功能重新安装 macOS
  9. python可以做什么-Python是什么?用Python可以做什么?
  10. spark成长之路(1)spark究竟是什么?
  11. 初探Nacos(四)-- SpringBoot下使用Nacos作为配置中心
  12. 3.Prometheus 监控技术与实践 --- Exporter
  13. JAVA加密C++解密简单方法
  14. 使用预计算实时全局光照优化照明-优化实时光照贴图
  15. 社会工程学读书[1]
  16. 对数几率回归(逻辑回归)
  17. educoder中Spark GraphX—构建图及相关操作
  18. 下列关于三种数据交换方式的叙述,错误的是( )
  19. 从list中删除某几个元素的方法
  20. JS监控手机或APP返回事件

热门文章

  1. 无尘车间净化装修方案
  2. jpa基于ExampleMatcher,Example实现动态筛选,模糊查询,分页,排序,时间范围筛选
  3. hive学习过程中参考连接 疯狂蚂蚁
  4. 智者千虑,必有一失--谈如何发现BUG,定义BUG的级别和状态
  5. Heic是什么格式?如何在电脑里打开?
  6. Git config
  7. 酷播云视频二维码的使用教程
  8. java 牛顿迭代算术平方根,牛顿迭代法求n方根
  9. java 绘制角色_利用scratch绘图编辑器绘制角色和角色的加工
  10. bho是什么文件夹_BHO的完整形式是什么?