wait和waitpid函数
2015-09-22 16:53
411 查看
当一个进程正常或者异常终止时,内核就向其父进程发送SIGCHLD信号。父进程可以选择忽略该信号(系统默认的方式),也可以对该信号进行回馈。
对于调用wait和waitpid的进程:
(1)如果其所有子进程都还在运行,那么该进程阻塞
(2)如果一个子进程终止,则获取子进程的终止状态,并返回
(3)如果没有子进程,返回错误
#include <sys/wait.h>
pid_t wait(int *statloc);
pid_t waitpid(pid_t pid, int *statloc, int options);
两个函数的区别:
(1)waitpid可等待一个特定的进程,而wait则返回任一终止进程的状态,一旦某个子进程结束,就返回
(2)waitpid提供一个wait的非阻塞版本
(3)waitpid支持作业控制
WIFEXITED(status) 这个宏用来指出子进程是否为正常退出的,如果是,它会返回一个非零值。
对于调用wait和waitpid的进程:
(1)如果其所有子进程都还在运行,那么该进程阻塞
(2)如果一个子进程终止,则获取子进程的终止状态,并返回
(3)如果没有子进程,返回错误
#include <sys/wait.h>
pid_t wait(int *statloc);
pid_t waitpid(pid_t pid, int *statloc, int options);
两个函数的区别:
(1)waitpid可等待一个特定的进程,而wait则返回任一终止进程的状态,一旦某个子进程结束,就返回
(2)waitpid提供一个wait的非阻塞版本
(3)waitpid支持作业控制
WIFEXITED(status) 这个宏用来指出子进程是否为正常退出的,如果是,它会返回一个非零值。
相关文章推荐
- 微博情感分析的表情符号平滑语言模型(A11, AAAI2012)
- Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING
- rhel6安装aircrack-ng
- Unity 3D 使用TerrainCompose 调用RTP 报错:
- weglogic Error 503--Service Unavailable
- [置顶] linux中fork()函数详解 ) http://blog.csdn.net/jason314/article/details/5640969
- 解决svn Authorization failed错误
- Container With Most Water
- ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
- 杭电1023Train Problem II
- exit和return的区别 http://blog.csdn.net/firefly_2002/article/details/7960595
- STM32用JLINK 烧写程序时出现NO Cortex-m device found in JTAG chain现象和解决方案
- 没有main函数生成可执行程序的几种方法 http://www.linuxidc.com/Linux/2013-09/90061.htm
- 升级Xcode7&iOS9后,出现NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -980)
- 磁盘RAID总结
- 文件显示命令:cat、more、less、tail、touch详解
- Lightoj 1138 Trailing Zeroes (III) 【二分】
- 解决Could not reliably determine the server's fully qualified domain name
- Gradle project sync failed Error:Connection reset问题
- CMMI中的过程管理(DMAIC)