wait4(2) - Linux 手册页

名称

wait3, wait4 - 等待进程状态改变,BSD 风格

概要

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

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

pid_t wait4(pid_t pid, int *status, int options,
            struct rusage *rusage);
glibc 的功能测试宏要求(参见 feature_test_macros(7))
wait3():
_BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
wait4():
_BSD_SOURCE

描述

这些函数已经过时;在新程序中使用 waitpid(2) 或 waitid(2)。

wait3() 和 wait4() 系统调用类似于 waitpid(2),但额外返回指向 rusage 的结构体中关于子进程的资源使用信息。

除了使用 rusage 参数之外,以下 wait3() 调用

wait3(status, options, rusage);
等同于
waitpid(-1, status, options);
类似地,以下 wait4() 调用
wait4(pid, status, options, rusage);
等同于
waitpid(pid, status, options);
换句话说,wait3() 等待任何子进程,而 wait4() 可以用来选择特定的子进程或子进程组进行等待。有关更多详细信息,请参阅 wait(2)。

如果 rusage 不为 NULL,则指向它的 struct rusage 结构体将被填充关于子进程的会计信息。有关详细信息,请参阅 getrusage(2)。

返回值

waitpid(2) 类似。

错误

waitpid(2) 类似。

符合

4.3BSD。

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

说明

现在包含 <sys/time.h> 不是必需的,但可以提高可移植性。(实际上,<sys/resource.h> 定义了 rusage 结构体,其中包含在 <sys/time.h> 中定义的 struct timeval 类型字段。)

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

参见

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

引用自

exit(2), explain(1), explain(3), explain_wait4(3), explain_wait4_or_die(3), iv_wait(3), perlfunc(1), popen(3)