CakeFest 2024: The Official CakePHP Conference

pcntl_sigwaitinfo

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

pcntl_sigwaitinfoAttend un signal

Description

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

La fonction pcntl_sigwaitinfo() suspend son exécution jusqu'à la réception d'un des signaux, indiqué dans signals. Si un des signaux est déjà en attente (i.e., bloqué par pcntl_sigprocmask()), pcntl_sigwaitinfo() se termine immédiatement.

Liste de paramètres

signals

Un tableau de signaux à attendre.

info

Le paramètre info reçoit un tableau contenant les informations sur le signal.

Les éléments suivants sont toujours disponibles pour tous les signaux :

  • signo : numéro de signal
  • errno : un numéro d'erreur
  • code : code de signal

Les éléments suivants peuvent être disponibles pour le signal SIGCHLD :

  • status : valeur de sortie ou signal
  • utime : temps utilisateur consommé
  • stime : temps système consommé
  • pid : numéro de processus appelant
  • uid : identifiant de l'utilisateur appelant, ou du processus appelant

Les éléments suivants peuvent être disponibles pour les signaux SIGILL, SIGFPE, SIGSEGV et SIGBUS :

  • addr : adresse mémoire qui a causé l'erreur

Les éléments suivants peuvent être disponibles pour le signal SIGPOLL :

  • band : événement de band
  • fd : numéro de pointeur de fichier

Valeurs de retour

Retourne un numéro du signal en cas de succès, ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec pcntl_sigwaitinfo()

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

echo
"Envoi du signal SIGHUP à moi-même\n";
posix_kill(posix_getpid(), SIGHUP);

echo
"Attente de signaux\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>

Voir aussi

add a note

User Contributed Notes 1 note

up
0
dave at mudsite dot com
7 years ago
This function is not available on platforms that do not implement the underlying C function. Included in this would be MaxOS[1], and FreeBSD[2]

[1] : http://opensource.apple.com//source/xnu/xnu-1456.1.26/bsd/sys/signal.h

[2] : http://fxr.watson.org/fxr/source/sys/signal.h?v=FREEBSD11
To Top