wait4函数

来源:互联网 发布:linux 按某一列排序 编辑:程序博客网 时间:2024/04/28 01:48
#包含<sys/types.h>“#<sys/resource.h>“#<sys/wait.h>的

pid_t wait4(pid_t PID * 状态,INT 选项,结构什么用处* 什么用处);

描述

就像wait4函数一样()暂停当前进程的执行,直到一个孩子(PID)已经退出,或直到一个信号被发送,其行动是终止当前的进程或调用的信号处理功能。如果一个孩子(如要求通过PID)的通话时间(所谓的“僵尸”进程)已经退出,函数会立即返回。孩子所使用的所有系统资源将被释放。

PID的值可以是:

<-1 

等待任意子进程的进程组ID是PID的绝对值相等。

-1 

等待任何子进程这是相当于调用 WAIT3() 

0 

等待子进程的进程组ID等于调用进程。

> 0 

等待的进程ID,PID值等于为孩子 。

购股权的价值是按位或零个或多个下列常量:

WNOHANG 

如果没有孩子是有等待,立即返回。

WUNTRACED 

返回儿童都停止了,其状态尚未见报道。

如果状态不是NULL就像wait4函数一样() 状态信息存储位置 状态。此状态可以使用下列的宏评价:

注意:这些宏的状态值(一个 整数)作为一个参数-而不是一个指针的值!

WIFEXITED(状态) 

非零如果孩子正常退出。

WEXITSTATUS(状态) 

计算结果为最显著的8位孩子的返回代码,终止,这可能被设置为参数调用exit()的主程序中的return语句作为参数。这个宏只能进行评估,如果 WIFEXITED()返回非零。

WIFSIGNALED(状态) 

返回true,如果子进程退出的信号,因为没有抓到。

WTERMSIG(状态) 

返回导致子进程终止的信号的数量。这个宏只能进行评估,如果 WIFSIGNALED()返回非零。

WIFSTOPPED(状态) 

返回true,如果子进程目前已停止引起的回报,这是唯一可能的,如果完成使用WUNTRACED()调用 。

WSTOPSIG(状态) 

返回导致子进程停止的信号的数量。这个宏只能进行评估,如果WIFSTOPPED() 返回非零。

如果什么用处不是NULL,结构什么用处sys / resource.h文件中定义 ),它指向将充满了会计信息。 有关详细信息,请参阅使用getrusage() 

返回值

如果成功,孩子而退出的进程ID被返回。上的错误,则返回-1(尤其是当没有unwaited的指定种类的子进程存在),或者 0,如果使用WNOHANG(),还没有孩子。在后两种情况下,全局变量errno的设置正确。

错误

ECHILD 

指定没有unwaited的子进程不存在。

ERESTARTSYS 

没有设置一个WNOHANG()和一个畅通的信号或SIGCHILD的被抓。这个错误是由系统调用返回。库接口不允许返回 ERESTARTSYS,但将返回 EINTR

原创粉丝点击