Wartet auf Signale

# pcntl_sigwaitinfo

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

pcntl_sigwaitinfo — Wartet auf Signale

### Beschreibung

function pcntl_sigwaitinfo(array `$signals`, array `&$info` = []): int|false

Die Funktion pcntl_sigwaitinfo() unterbricht die Ausführung des aufrufenden Skripts, bis eines der in `signals` angegebenen Signale zugestellt wird. Ist eines der Signale bereits ausstehend (z. B. durch pcntl_sigprocmask() blockiert), kehrt pcntl_sigwaitinfo() sofort zurück.

### Parameter-Liste

`signals`

  Array von Signalen, auf die gewartet werden soll.

`info`

  Der Parameter `info` wird auf ein Array gesetzt, das Informationen über das Signal enthält.

  Die folgenden Elemente werden für alle Signale gesetzt:

  - signo: Signalnummer
  - errno: Eine Fehlernummer
  - code: Signalcode

  Die folgenden Elemente können für das Signal `SIGCHLD` gesetzt sein:

  - status: Exit-Wert oder Signal
  - utime: Verbrauchte Benutzerzeit
  - stime: Verbrauchte Systemzeit
  - pid: Prozess-ID des sendenden Prozesses
  - uid: Reale Benutzer-ID des sendenden Prozesses

  Die folgenden Elemente können für die Signale `SIGILL`, `SIGFPE`, `SIGSEGV` und `SIGBUS` gesetzt sein:

  - addr: Speicheradresse, die den Fehler verursacht hat

  Die folgenden Elemente können für das Signal `SIGPOLL` gesetzt sein:

  - band: Band-Ereignis
  - fd: Nummer des Dateideskriptors

### Rückgabewerte

Gibt bei Erfolg eine Signalnummer zurück. Bei einem Fehler wird `false` zurückgegeben.

### Changelog

Version | Beschreibung
--- | ---
8.4.0 | Es wird ein ValueError geworfen, wenn `signal` leer ist.
8.4.0 | Es wird ein TypeError geworfen, wenn der Wert von `signal` kein int ist.
8.4.0 | Es wird ein ValueError geworfen, wenn der Wert von `signal` ungültig ist.

### Beispiele

Beispiel #1 pcntl_sigwaitinfo()-Beispiel

    <?php
    echo "Blocking SIGHUP signal\n";
    pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));

    echo "Sending SIGHUP to self\n";
    posix_kill(posix_getpid(), SIGHUP);

    echo "Waiting for signals\n";
    $info = array();
    pcntl_sigwaitinfo(array(SIGHUP), $info);
    ?>

### Siehe auch

- pcntl_sigprocmask() - Setzt und ermittelt blockierte Signale
- pcntl_sigtimedwait() - Waits for signals, with a timeout

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