Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1779787
  • 博文数量: 438
  • 博客积分: 9799
  • 博客等级: 中将
  • 技术积分: 6092
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 17:25
文章分类

全部博文(438)

文章存档

2019年(1)

2013年(8)

2012年(429)

分类: 系统运维

2012-03-29 13:25:38

SUS的XSI扩展包含了一个补充的函数来获取一个进程的退出状态。waitid函数和waitpid相似,但提供了额外的灵活性。


  1. #include <sys/wait.h>

  2. int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options);

  3. 成功返回0,失败返回-1


和waitpid相似,waitid允许一个进程指定要等待哪些子进程。不是把这个信息和进程ID或进程组ID一起合并到单个参数里,而是使用两个单独的参数。参数id的解释基于idtype的值。被支持的类型在下表汇总:

waitid的idtype常量
常量 描述
P_PID 等待特定的进程:id包含等待的子进程ID
P_PGID 等待任何在特定进程组里的子进程:id包含等待的子进程的进程组ID
P_ALL 等待所有子进程:id被忽略


option参数是下表的标志的位或值。这些标志指明调用者感兴趣的是哪些状态改变:
waitid的options常量
常量 描述
WCONTINUED 等待之前停止但被继续的,但其状态还没有被报告的进程
WEXITED 等待已经退出的进程
WNOHANG 在没有可用的子进程退出状态时,立即返回,而不是阻塞
WNOWAIT 不摧毁子进程的退出状态。子进程的退出状态可以被随后的wait、waitid或waitpid得到
WSTOPPED 等待一个停止的且状态还没有被报告的进程


infop参数是一个指向siginfo结构体的指针。这个结构体包括关于导致子进程状态改变的产生的信号的细节信息。siginfo结构体在10.14节更深入地讨论。


本文讨论的4个平台里,只有Solaris提供对waitid的支持。

阅读(1886) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~