# pcntl_wait

(PHP 5, PHP 7, PHP 8)

pcntl_wait — Wartet auf ein abgezweigtes Kind oder gibt dessen Status zurück

### Beschreibung

pcntl_wait(int `&$status`, int `$flags` = 0, array `&$resource_usage` = []): int

Die Funktion wait unterbricht die Ausführung des aktuellen Prozesses, bis ein Kindprozess beendet ist oder bis ein Signal gesendet wird, um den aktuellen Prozess zu beenden oder eine Signalverabeitungsfunktion aufzurufen. Wenn ein Kindprozess zum Zeitpunkt des Funktionsaufrufs bereits beendet ist (ein sog. "Zombie"-Prozess), kehrt die Funktion umgehend zurück. Alle durch den Kindprozess verwendeten Ressourcen werden freigegeben. Spezifische Details, wie wait auf dem jeweiligen System funktioniert, sind in der wait(2)-Manpage des Systems zu finden.

> Hinweis:

> Ohne `flags` entspricht diese Funktion dem Aufruf der Funktion pcntl_waitpid() mit `-1` als `process_id`.

### Parameter-Liste

`status`

  pcntl_wait() speichert Statusinformationen im Parameter `status`, welcher durch die folgenden Funktionen ausgewertet werden kann: pcntl_wifexited(), pcntl_wifstopped(), pcntl_wifsignaled(), pcntl_wexitstatus(), pcntl_wtermsig() und pcntl_wstopsig().

`flags`

  Wenn wait3 auf dem System verfügbar ist (meist BSD-artige Systeme) kann der optionale Parameter `flags` angegeben werden. Wenn dieser Parameter nicht angegeben wurde, wird wait als Systemaufruf verwendet. Wenn wait3 nicht verfügbar ist, hat die Angabe eines Wertes für `flags` keinerlei Auswirkungen. Der Wert von `flags` ist der Wert von keiner oder mehr der folgenden durch `OR` verknüpften beiden Konstanten:

  Mögliche Werte für `flags`
  `WNOHANG` | Gebe umgehend zurück, wenn kein Kind beendet wurde.
  `WUNTRACED` | Gebe bei Kindern zurück, die angehalten wurden und deren Status nicht gemeldet wurde.

### Rückgabewerte

pcntl_wait() gibt die Prozess-ID des Kindes zurück, das beendet wurde, -1 im Fehlerfall, oder 0, wenn WNOHANG als Option angegeben wurde (auf Systemen mit wait3) und kein Kind verfügbar war.

### Siehe auch

- pcntl_fork() - Verzweigt den laufenden Prozess
- pcntl_signal() - Richtet eine Signalverarbeitung ein
- pcntl_wifexited() - Prüft, ob der Statuscode ein normales Beenden darstellt
- pcntl_wifstopped() - Prüft, ob der Kindprozess gerade gestoppt ist
- pcntl_wifsignaled() - Prüft, ob der Statuscode einen Abbruch wegen eines Signals darstellt
- pcntl_wexitstatus() - Lefert den Statuscode eines beendeten Kindes
- pcntl_wtermsig() - Gibt das Signal zurück, welches das Beenden des Kindes verursachte
- pcntl_wstopsig() - Gibt das Signal zurück, welches das Anhalten des Kindes verursachte
- pcntl_waitpid() - Wartet auf ein abgezweigtes Kind oder gibt dessen Status zurück

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open