waitpid
waitpid ist ein UNIX-Systemaufruf, mit dem ein Elternprozess auf Zustandsänderungen eines bestimmten Kindprozesses warten kann.
pid_t waitpid(pid_t pid, int *wstatus, int options);
Parameter
| Parameter | Bedeutung |
|---|---|
pid |
Prozess-ID des Kindprozesses |
wstatus |
Speicheradresse für Statusinformationen oder NULL |
options |
Steuerung des Warteverhaltens |
Wichtige Varianten
Blockierend warten:
waitpid(pid, NULL, 0);
Der Elternprozess wartet, bis der Kindprozess beendet ist.
Nicht-blockierend prüfen:
waitpid(pid, NULL, WNOHANG);
Der Elternprozess wartet nicht. Falls das Kind noch läuft, wird 0 zurückgegeben.
Verwendung in einer Shell
- Vordergrundprozess: Shell wartet mit
waitpid(..., 0). - Hintergrundprozess: Shell läuft weiter und prüft später mit
waitpid(..., WNOHANG).