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