waitpid WNOHANG
#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相关推荐
- Linux:进程管理 | 进程创建 | 进程终止 | 进程等待 | 进程替换
文章目录 进程创建 fork 写时拷贝机制 进程终止 退出码 进程退出方法 进程等待 阻塞.非阻塞的等待 进程替换 替换函数 exec l exec lp exec le exec ve exec v ...
- 【Linux网络编程】UDP 套接字编程
[Linux网络编程]UDP 套接字编程 [1]用户数据报协议(UDP) UDP是一个简单的传输层协议,不保证UDP数据报会到达其最终目的地,不保证各个数据报的先后顺序跨网络后保持不变,也不保证每个数 ...
- linux系统/网络编程
经典数据: APUE:unix环境高级编程3版 linux系统编程手册 德 linux系统编程 oreily unix内核源码剖析 日 windows核心编程 linux系统开发模式: ssh远程登录 ...
- 从kernel源代码的角度分析signal的错误用法和理解
读这份文档之前,建议先浏览一下 <Unix Advanced Programming >里面的signal 一章和下面这份出 自IBM 论坛的文章:进程间通信 信号(上) http://w ...
- 对while((pid = waitpid(-1, stat, WNOHANG)) 0)不懂的地方,现在懂了
while((pid = waitpid(-1, &stat, WNOHANG)) > 0) 需要写到信号处理函数中,假如有10个子进程 只要父进程能够收到最后一个信号,就能把前面丢失的 ...
- Linux wait() 和 waitpid()函数介绍
转载自http://blog.csdn.net/wallwind/article/details/6998602 当一个进程正常或异常终止的时候,内核就像其父进程发送SIGCHLD信号,因为子进程是个 ...
- Linux环境编程--waitpid与fork与execlp
waitpid waitpid(等待子进程中断或结束) 表头文件 #include<sys/types.h> #include<sys/wait.h> 定义函数 pid_t w ...
- linux 进程等待 wait 、 waitpid
waitpid() 与 wait() 功能相似,都是用户主进程等待子进程结束或中断. 可用于进程之间的同步 wait 函数原型 pid_t wait(int *status); 函数说明 wait() ...
- 【转】linux中waitpid及wait的用法
原文网址:http://www.2cto.com/os/201203/124851.html wait(等待子进程中断或结束) 表头文件 #include<sys/types.h> #in ...
最新文章
- Android应用--QR的生成(二维码)
- Ubunt php连接oracle,uBuntu PHP Oracle扩展 OCI8安装
- ios一个app调起另一个app_电商app开发价格:制作一个电商app需要多少钱?
- 世界机器人大会进入最后一天,最受市民关注的是它!
- linux运维安全方案,LINUX 安全运维 (一)
- WCF 附录 高级主题 系列文章
- 在银行存款被吞了,怎么能快速解决?
- macos server 恢复安装_如何通过 macOS 恢复功能重新安装 macOS
- python可以做什么-Python是什么?用Python可以做什么?
- spark成长之路(1)spark究竟是什么?
- 初探Nacos(四)-- SpringBoot下使用Nacos作为配置中心
- 3.Prometheus 监控技术与实践 --- Exporter
- JAVA加密C++解密简单方法
- 使用预计算实时全局光照优化照明-优化实时光照贴图
- 社会工程学读书[1]
- 对数几率回归(逻辑回归)
- educoder中Spark GraphX—构建图及相关操作
- 下列关于三种数据交换方式的叙述,错误的是( )
- 从list中删除某几个元素的方法
- JS监控手机或APP返回事件