备注

这些天都不需要添加,但是增加了可移植性。 (实际上,使用在中定义的struct timeval类型的字段定义了rusage结构。)

C library/kernel differences

在Linux上,wait3()是在wait4()系统调用之上实现的库函数。

错误说明

至于waitpid(2)。

语法

#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <sys/wait.h>

pid_t wait3(int *wstatus, int options,
            struct rusage *rusage);

pid_t wait4(pid_t pid, int *wstatus, int options,
            struct rusage *rusage);

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

wait3():
从glibc 2.26开始:
_DEFAULT_SOURCE
(_XOPEN_SOURCE> == 500 &&
! (_POSIX_C_SOURCE> = 200112L ||| _XOPEN_SOURCE> = 600))
从glibc 2.19到2.25:
_DEFAULT_SOURCE _XOPEN_SOURCE> = 500
Glibc 2.19及更早版本:
_BSD_SOURCE _XOPEN_SOURCE> = 500
wait4():
从glibc 2.19开始:
_DEFAULT_SOURCE
Glibc 2.19及更早版本:
_BSD_SOURCE

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

WAIT4 - Linux手册页

Linux程序员手册 第2部分
更新日期: 2020-06-09

另外参见

fork(2),getrusage(2),sigaction(2),signal(2),wait(2),signal(7)

名称

wait3,wait4-等待进程更改状态,BSD样式

遵循规范

4.3BSD。

SUSv1包含了一个wait3()规范; SUSv2包含wait3(),但将其标记为LEGACY; SUSv3删除了它。

说明

这些功能是非标准的;在新程序中,首选使用waitpid(2)或waitid(2)。

wait3()和wait4()系统调用与waitpid(2)类似,但是另外还会返回由rusage指向的结构中有关子级的资源使用信息。

除了使用rusage参数之外,下面的wait3()调用:

wait3(wstatus, options, rusage);

等效于:

waitpid(-1, wstatus, options);

同样,以下wait4()调用:

wait4(pid, wstatus, options, rusage);

等效于:

waitpid(pid, wstatus, options);

换句话说,wait3()会等待任何子项,而wait4()可以用于选择要在其上等待的一个或多个特定子项。有关更多详细信息,请参见wait(2)。

如果rusage不为NULL,则指向的结构rusage将填充有关该子级的记帐信息。有关详细信息,请参见getrusage(2)。

返回值

至于waitpid(2)。

日期:2019-08-20 17:59:37 来源:oir作者:oir