diff options
Diffstat (limited to '')
-rw-r--r-- | man2/wait4.2 | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/man2/wait4.2 b/man2/wait4.2 new file mode 100644 index 0000000..7136d70 --- /dev/null +++ b/man2/wait4.2 @@ -0,0 +1,169 @@ +.\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de) +.\" and Copyright (c) 2004 by Michael Kerrisk <mtk.manpages@gmail.com> +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" Modified Sat Jul 24 13:32:44 1993 by Rik Faith (faith@cs.unc.edu) +.\" Modified Mon Jun 23 14:09:52 1997 by aeb - add EINTR. +.\" Modified Tue Jul 7 12:26:42 1998 by aeb - changed return value wait3 +.\" Modified 2004-11-11, Michael Kerrisk <mtk.manpages@gmail.com> +.\" Rewrote much of this page, and removed much duplicated text, +.\" replacing with pointers to wait.2 +.\" +.TH wait4 2 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +wait3, wait4 \- wait for process to change state, BSD style +.SH LIBRARY +Standard C library +.RI ( libc ", " \-lc ) +.SH SYNOPSIS +.nf +.B #include <sys/wait.h> +.PP +.BI "pid_t wait3(int *_Nullable " "wstatus" ", int " options , +.BI " struct rusage *_Nullable " rusage ); +.BI "pid_t wait4(pid_t " pid ", int *_Nullable " wstatus ", int " options , +.BI " struct rusage *_Nullable " rusage ); +.fi +.PP +.RS -4 +Feature Test Macro Requirements for glibc (see +.BR feature_test_macros (7)): +.RE +.PP +.BR wait3 (): +.nf + Since glibc 2.26: + _DEFAULT_SOURCE + || (_XOPEN_SOURCE >= 500 && + ! (_POSIX_C_SOURCE >= 200112L + || _XOPEN_SOURCE >= 600)) + From glibc 2.19 to glibc 2.25: + _DEFAULT_SOURCE || _XOPEN_SOURCE >= 500 + glibc 2.19 and earlier: + _BSD_SOURCE || _XOPEN_SOURCE >= 500 +.\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED +.fi +.PP +.BR wait4 (): +.nf + Since glibc 2.19: + _DEFAULT_SOURCE + glibc 2.19 and earlier: + _BSD_SOURCE +.fi +.SH DESCRIPTION +These functions are nonstandard; in new programs, the use of +.BR waitpid (2) +or +.BR waitid (2) +is preferable. +.PP +The +.BR wait3 () +and +.BR wait4 () +system calls are similar to +.BR waitpid (2), +but additionally return resource usage information about the +child in the structure pointed to by +.IR rusage . +.PP +Other than the use of the +.I rusage +argument, the following +.BR wait3 () +call: +.PP +.in +4n +.EX +wait3(wstatus, options, rusage); +.EE +.in +.PP +is equivalent to: +.PP +.in +4n +.EX +waitpid(\-1, wstatus, options); +.EE +.in +.PP +Similarly, the following +.BR wait4 () +call: +.PP +.in +4n +.EX +wait4(pid, wstatus, options, rusage); +.EE +.in +.PP +is equivalent to: +.PP +.in +4n +.EX +waitpid(pid, wstatus, options); +.EE +.in +.PP +In other words, +.BR wait3 () +waits of any child, while +.BR wait4 () +can be used to select a specific child, or children, on which to wait. +See +.BR wait (2) +for further details. +.PP +If +.I rusage +is not NULL, the +.I struct rusage +to which it points will be filled with accounting information +about the child. +See +.BR getrusage (2) +for details. +.SH RETURN VALUE +As for +.BR waitpid (2). +.SH ERRORS +As for +.BR waitpid (2). +.SH STANDARDS +None. +.SH HISTORY +4.3BSD. +.PP +SUSv1 included a specification of +.BR wait3 (); +SUSv2 included +.BR wait3 (), +but marked it LEGACY; +SUSv3 removed it. +.PP +Including +.I <sys/time.h> +is not required these days, but increases portability. +(Indeed, +.I <sys/resource.h> +defines the +.I rusage +structure with fields of type +.I struct timeval +defined in +.IR <sys/time.h> .) +.SS C library/kernel differences +On Linux, +.BR wait3 () +is a library function implemented on top of the +.BR wait4 () +system call. +.SH SEE ALSO +.BR fork (2), +.BR getrusage (2), +.BR sigaction (2), +.BR signal (2), +.BR wait (2), +.BR signal (7) |