1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
|
.\" Hey Emacs! This file is -*- nroff -*- source.
.\"
.\" (c) 1993 by Thomas Knig (ig25@rz.uni-karlsruhe.de)
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date. The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein. The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" License.
.\"
.\" Modified Sat Jul 24 13:32:44 1993 by Rik Faith (faith@cs.unc.edu)
.\" German Translation Tue Mar 26 21:25:00 1996 Elmar Jansen (ej@pumuckel.gun.de)
.\" Modified Mon Jun 10 00:38:50 1996 by Martin Schulze (joey@linux.de)
.\"
.TH WAIT4 2 "26. Mrz 1996" "Linux" "Systemaufrufe"
.SH BEZEICHNUNG
wait3, wait4 \- wartet auf die Beendigung eines Prozesses, BSD style
.SH BERSICHT
.nf
.B #define _USE_BSD
.B #include <sys/types.h>
.B #include <sys/resource.h>
.B #include <sys/wait.h>
.sp 2
.BI "pid_t wait3(int *" "status" ", int " options ","
.BI " struct rusage *" rusage ")"
.sp
.BI "pid_t wait4(pid_t " pid ", int *" status ", int " options ,
.BI " struct rusage *" rusage ")"
.fi
.SH BESCHREIBUNG
Die Funktion
.B wait3
unterbricht Ausfhrung des aktuellen Prozesses bis sich ein
Kind\-Proze beendet, oder ein Signal eintrifft, um den aktuellen Proze
zu beenden. Wenn ein Kind-Proze schon beendet ist (ein sogennenter Zombie),
wird die Funktion sofort beendet. Alle Systemresourcen des Kind-Prozesses
werden freigegeben.
Die Funktion
.B wait4
unterbricht die Ausfhrung des aktuelllen Prozesses bis sich der
Kind-Proze mit der Pozenummer
.I pid
beendet, oder ein Signal eintrifft, um den aktuellen Proze
zu beenden. Wenn der Kind-Proze mit der Prozenummer
.I pid
schon beendet ist (ein sogennenter Zombie),wird die Funktion sofort beendet.
Alle Systemresourcen des Kind-Prozesses werden freigegeben.
Der Wert von
.I pid
kann einer der folgenden sein:
.IP "< \-1"
hierbei wird auf ein beliebiges Kind gewartet des Prozegruppennummer
gleich ist mit dem absoluten Wert von
.IR pid .
.IP \-1
hierbei wird auf irgendein Kind gewartet: dies ist identisch mit dem
Aufruf von
.BR wait3 .
.IP 0
hierbei wird auf irgendein Kind gewartet dessen Prozegruppennummer
gleich ist mit der des Vaters.
.IP "> 0"
hierbei wird auf das Kind gewartet dessen Prozenummer gleich ist mit
dem Wert von
.IR pid .
.PP
Der Wert von
.I options
ist das ERgebnis eines exclusiven ODER von keinem oder mehreren der
folgenden Konstanten:
.TP
.B WNOHANG
hierbei wird sofort zurckgekehrt wenn auf kein Kind gewartet werden mu.
.TP
.B WUNTRACED
hierbei wird auch zurckgekehrt wenn auf Kinder gewartet werden soll die
gestoppt sind und deren Status noch nicht zurckgegeben wurde.
.PP
Wenn
.I status
nicht
.BR NULL ,
ist speichern
.B wait3
or
.B wait4
die Stausinformation in der Variablen
.IR statloc .
.PP
Der Status kann mit folgenden Makros ermittelt werden:
.TP
.BI WIFEXITED(* status )
ist nicht Null wenn das Kind normal beendet wurde.
.TP
.BI WEXITSTATUS(* status )
wertet die letzten acht Bits des Rckgabewertes des Kindes aus, die
als Argument der Funktion
.B exit
gesetzt, oder als Argument eines
.B return
Statements des main Programms gesetzt wurden. Dieses Makro kann nur
benutzt werden wenn
.B WIFEXITED
einen Wert ungleich Null liefert.
.TP
.BI WIFSIGNALED(* status )
liefert wahr zurck, wenn das Kind aufgrund eines nicht abgefangenen
Signals beendet wurde.
.TP
.BI WTERMSIG(* status )
liefert die Signalnummer des Signals das des Kind beendete. Dieses Makro
kann nur benutzt werden wenn
.B WIFSIGNALED
einen Wert ungleich Null liefert.
.TP
.BI WIFSTOPPED(* status )
liefert wahr zurck, wenn das Kind, das den Return auslste, im Moment
gestoppt ist. Dies ist nur der Fall wenn der Aufruf whrend eines
.B WUNTRACED
erfolgte.
.TP
.BI WSTOPSIG(* status )
liefert die Signalnummer des Signals das das Kind stoppte. Dieses Makro
kann nur benutzt werden wenn
.B WIFSTOPPED
einen Wert ungleich Null liefert.
Wenn
.I rusage
nicht
.BR NULL ,
ist wird
.B struct rusage
, wie in
.I <sys/resource.h>
definiert, mit Accountinginformationen gefllt. Siehe dazu
.BR getrusage (2).
.SH "RCKGABEWERT"
Die Prozenummer des Kindes welches sich beendet, oder bei einem
Fehler \-1, oder Null wenn
.B WNOHANG
benutzt wurde und kein Kind mehr existierte. In diesem Fall wird
.I errno
auf einen entsprechenden Wert gesetzt.
.SH "ERRORS"
.TP
.B ECHILD
Wenn der Kindproze mit der
.I pid
nicht existiert.
.TP
.B EPERM
Wenn die effektive Userid des aufrufenden Prozesses nicht bereinstimmt
mit dem Proze auf den gewartet werden soll und die effektive Userid
des aufrufenden Prozesses nicht die des Superusers ist.
.TP
.B ERESTARTSYS
Wenn
.B WNOHANG
nicht gesetzt wurde und ein nicht blockierendes Signal oder ein
.B SIGCHLD
zurckgegeben wurde; dies ist eine Erweiterung des POSIX.1 Standards.
.SH "KONFORM ZU"
POSIX.1
.SH "SIEHE AUCH"
.BR signal (2),
.BR getrusage (2),
.BR wait (2),
.BR signal (7).
|