SIGQUEUE
Section: Manuel du programmeur Linux (2) Updated: 18 juillet 2003 Index
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
NOTES
CONFORMITÉ
VOIR AUSSI
TRADUCTION
NOM
sigqueue - Enregistrer un signal et des données pour un processus
SYNOPSIS
#include <signal.h>
int sigqueue(pid_t pid, int sig, const union sigval valeur);
DESCRIPTION
sigqueue()
envoie le signal
sig
au processus indiqué par
pid.
Les permissions requises pour l'émission du signal sont les même que pour
kill(2).
Comme avec
kill(2),
le signal nul (0) peut servir à vérifier si un processus existe
avec un PID donné.
L'argument
valeur
sert à indiquer une donnée (soit un entier, soit un pointeur) qui accompagnera
le signal et se présente avec le type suivant :
union sigval {
int sival_int;
void *sival_ptr;
};
Si le processus récepteur a installé un gestionnaire pour le signal avec l'option
SA_SIGINFO
lors du
sigaction(2),
il pourra obtenir la donnée dans le champ
si_value
de la structure
siginfo_t
passée en second argument au gestionnaire.
De plus, le champ
si_code
de la structure contiendra
SI_QUEUE.
VALEUR RENVOYÉE
L'appel
sigqueue()
renvoie s'il réussit, indiquant que le signal a bien été
mis dans la file du processus récepteur.
Sinon il renvoie -1 ete
errno
contient le code de l'erreur.
ERREURS
- EAGAIN
-
La limite du nombre de signaux en file a été atteinte.
(Voir
signal(7)
pour plus d'informations).
- EINVAL
-
sig
est invalide.
- ESRCH
-
Il n'y a pas de processus correspondan au
pid.
- EPERM
-
Le processus n'a pas la permission d'envoyer un signal
au processus visé.
(Voir
kill(2)
pour plus d'informations).
NOTES
Si l'appel consiste à envoyer un signal au processus qui l'a invoqué,
et si le signal n'est pas bloqué par le thread appelant, et si aucun autre
thread ne peut traiter le signal (soit en l'ayant
débloqué, ou en faisant une attente avec
sigwait(3)),
alors au moins quelques signaux seront délivrés au thread appelant avant
que la fonction ne revienne.
CONFORMITÉ
POSIX 1003.1-2001
VOIR AUSSI
TRADUCTION
Christophe Blaess, 1996-2003.
|
|