|
|
1.1 ! root 1: .\" Copyright (c) 1980 Regents of the University of California. ! 2: .\" All rights reserved. The Berkeley software License Agreement ! 3: .\" specifies the terms and conditions for redistribution. ! 4: .\" ! 5: .\" @(#)wait.2 6.2 (Berkeley) 6/30/85 ! 6: .\" ! 7: .TH WAIT 2 "June 30, 1985" ! 8: .UC 4 ! 9: .SH NAME ! 10: wait, wait3 \- wait for process to terminate ! 11: .SH SYNOPSIS ! 12: .ft B ! 13: .nf ! 14: #include <sys/wait.h> ! 15: .PP ! 16: .ft B ! 17: pid = wait(status) ! 18: int pid; ! 19: union wait *status; ! 20: .PP ! 21: .ft B ! 22: pid = wait(0) ! 23: int pid; ! 24: .PP ! 25: .ft B ! 26: #include <sys/time.h> ! 27: #include <sys/resource.h> ! 28: .PP ! 29: .ft B ! 30: pid = wait3(status, options, rusage) ! 31: int pid; ! 32: union wait *status; ! 33: int options; ! 34: struct rusage *rusage; ! 35: .fi ! 36: .SH DESCRIPTION ! 37: .I Wait ! 38: causes its caller to delay until a signal is received or ! 39: one of its child ! 40: processes terminates. ! 41: If any child has died since the last ! 42: .IR wait , ! 43: return is immediate, returning the process id and ! 44: exit status of one of the terminated ! 45: children. ! 46: If there are no children, return is immediate with ! 47: the value \-1 returned. ! 48: .PP ! 49: On return from a successful ! 50: .I wait ! 51: call, ! 52: .I status ! 53: is nonzero, and the high byte of ! 54: .I status ! 55: contains the low byte of the argument to ! 56: .I exit ! 57: supplied by the child process; ! 58: the low byte of ! 59: .I status ! 60: contains the termination status of the process. ! 61: A more precise definition of the ! 62: .I status ! 63: word is given in ! 64: .RI < sys/wait.h >. ! 65: .PP ! 66: .I Wait3 ! 67: provides an alternate interface for programs ! 68: that must not block when collecting the status ! 69: of child processes. The ! 70: .I status ! 71: parameter is defined as above. The ! 72: .I options ! 73: parameter is used to indicate the call should not block if ! 74: there are no processes that wish to report status (WNOHANG), ! 75: and/or that children of the current process that are stopped ! 76: due to a SIGTTIN, SIGTTOU, SIGTSTP, or SIGSTOP signal should also have ! 77: their status reported (WUNTRACED). If ! 78: .I rusage ! 79: is non-zero, a summary of the resources used by the terminated ! 80: process and all its ! 81: children is returned (this information is currently not available ! 82: for stopped processes). ! 83: .PP ! 84: When the WNOHANG option is specified and no processes ! 85: wish to report status, ! 86: .I wait3 ! 87: returns a ! 88: .I pid ! 89: of 0. The WNOHANG and WUNTRACED options may be combined by ! 90: .IR or 'ing ! 91: the two values. ! 92: .SH NOTES ! 93: See ! 94: .IR sigvec (2) ! 95: for a list of termination statuses (signals); ! 96: 0 status indicates normal termination. ! 97: A special status (0177) is returned for a stopped process ! 98: that has not terminated and can be restarted; ! 99: see ! 100: .IR ptrace (2). ! 101: If the 0200 bit of the termination status ! 102: is set, ! 103: a core image of the process was produced ! 104: by the system. ! 105: .PP ! 106: If the parent process terminates without ! 107: waiting on its children, ! 108: the initialization process ! 109: (process ID = 1) ! 110: inherits the children. ! 111: .PP ! 112: .I Wait ! 113: and ! 114: .I wait3 ! 115: are automatically restarted when a process receives a ! 116: signal while awaiting termination of a child process. ! 117: .SH "RETURN VALUE ! 118: If \fIwait\fP returns due to a stopped ! 119: or terminated child process, the process ID of the child ! 120: is returned to the calling process. Otherwise, a value of \-1 ! 121: is returned and \fIerrno\fP is set to indicate the error. ! 122: .PP ! 123: .I Wait3 ! 124: returns \-1 if there are no children not previously waited ! 125: for; 0 is returned if WNOHANG is specified and there are ! 126: no stopped or exited children. ! 127: .SH ERRORS ! 128: .I Wait ! 129: will fail and return immediately if one or more of the following ! 130: are true: ! 131: .TP 15 ! 132: [ECHILD] ! 133: The calling process has no existing unwaited-for ! 134: child processes. ! 135: .TP 15 ! 136: [EFAULT] ! 137: The \fIstatus\fP or \fIrusage\fP arguments point to an illegal address. ! 138: .SH "SEE ALSO" ! 139: exit(2)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.