.\" -*- coding: UTF-8 -*- .\" Copyright (c) 2002 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH sigwaitinfo 2 "30 mars 2023" "Pages du manuel de Linux 6.05.01" .SH NOM sigwaitinfo, sigtimedwait, rt_sigtimedwait \- Attente synchrone de signaux .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP) .SH SYNOPSIS .nf \fB#include \fP .PP \fBint sigwaitinfo(const sigset_t *restrict \fP\fIset\fP\fB,\fP \fB siginfo_t *_Nullable restrict \fP\fIinfo\fP\fB);\fP \fBint sigtimedwait(const sigset_t *restrict \fP\fIset\fP\fB,\fP \fB siginfo_t *_Nullable restrict \fP\fIinfo\fP\fB,\fP \fB const struct timespec *restrict \fP\fItimeout\fP\fB);\fP .fi .PP .RS -4 Exigences de macros de test de fonctionnalités pour la glibc (consulter \fBfeature_test_macros\fP(7))\ : .RE .PP \fBsigwaitinfo\fP(), \fBsigtimedwait\fP()\ : .nf _POSIX_C_SOURCE >= 199309L .fi .SH DESCRIPTION \fBsigwaitinfo\fP() suspend l'exécution du thread appelant jusqu'à ce que l'un des signaux de l'\fIensemble\fP soit en attente. (Si l'un des signaux de l'\fIensemble\fP est déjà en attente pour le thread appelant, \fBsigwaitinfo\fP() rend la main immédiatement). .PP \fBsigwaitinfo\fP() retire le signal de l'ensemble des signaux en attente, et renvoie le numéro du signal comme valeur de retour. Si l'argument \fIinfo\fP n'est pas \fBNULL\fP, alors le tampon vers lequel il pointe est utilisé pour renvoyer une structure du type \fIsiginfo_t\fP (consultez \fBsigaction\fP(2)) contenant les informations concernant le signal. .PP Si plusieurs signaux de l'\fIensemble\fP sont mis en attente pour l'appelant, le signal récupéré \fBsigwaitinfo\fP() est déterminé par les règles de classement habituelles. Consultez \fBsignal\fP(7) pour plus de détails. .PP \fBsigtimedwait\fP() opère exactement comme \fBsigwaitinfo\fP(), mais elle a un argument supplémentaire, \fIdélai\fP, qui permet de définir le temps pendant lequel le thread est suspendu dans l'attente d'un signal. (Cet intervalle de temps est arrondi à la granularité de l'horloge système et cet intervalle peut être modifié légèrement à cause des délais d'ordonnancement du noyau.) Cet argument est une structure \fBtimespec\fP(3). .PP Si les deux champs de cette structure sont nuls, \fBsigtimedwait\fP() revient tout de suite, soit avec des informations sur un signal déjà en attente, soit avec une erreur si aucun signaux de l'\fIensemble\fP n'étaient disponibles. .SH "VALEUR RENVOYÉE" S'ils réussissent \fBsigwaitinfo\fP() et \fBsigtimedwait\fP() renvoient un numéro de signal (une valeur supérieure à zéro). S'ils échouent, ils renvoient \fB\-1\fP et \fIerrno\fP contient le code d'erreur. .SH ERREURS .TP \fBEAGAIN\fP Aucun signal de l'\fIensemble\fP n'a été mis en attente avant expiration du \fIdélai\fP indiqué pour \fBsigtimedwait\fP(). .TP \fBEINTR\fP L'appel a été interrompu par un gestionnaire de signal\ ; consultez \fBsignal\fP(7). (Un signal autre que ceux présents dans l'\fIensemble\fP.) .TP \fBEINVAL\fP \fIdélai\fP était invalide. .SH VERSIONS .SS "Différences entre bibliothèque C et noyau" Sous Linux, \fBsigwaitinfo\fP() est une fonction de bibliothèque implémentée au dessus de \fBsigtimedwait\fP(). .PP Les fonctions enveloppes \fBsigwaitinfo\fP() et \fBsigtimedwait\fP() de la glibc ignorent silencieusement les tentatives pour attendre les deux signaux en temps réel utilisés en interne par l'implémentation de threading de NPTL. Consultez \fBnptl\fP(7) pour les détails. .PP .\" L'appel système Linux d'origine s'appelait \fBsigtimedwait\fP(). Toutefois, avec l'arrivée des signaux en temps réel dans Linux\ 2.2 et de la taille figée, le type \fIsigset_t\fP 32 bits pris en charge par cet appel système ne convenait plus à cet objectif. Par conséquent, un nouvel appel système \fBrt_sigtimedwait\fP() a été ajouté pour prendre en charge le type \fIsigset_t\fP élargi. Le nouvel appel système prend un quatrième paramètre, \fIsize_t sigsetsize\fP, qui indique la taille en octets des jeux de signal dans l'\fIensemble\fP. Ce paramètre est actuellement nécessaire pour obtenir la valeur \fIsizeof(sigset_t)\fP (ou le résultat de l'erreur \fBEINVAL\fP). La fonction enveloppe \fBsigtimedwait\fP() de la glibc nous cache ces détails en appelant de manière transparente \fBrt_sigtimedwait\fP() quand le noyau le fournit. .SH STANDARDS POSIX.1\-2008. .SH HISTORIQUE POSIX.1\-2001. .SH NOTES En utilisation habituelle, l'appelant bloque les signaux de l'\fIensemble\fP au préalable avec un appel \fBsigprocmask\fP(2) (afin que la délivrance des signaux ne se produise pas s'ils sont mis en attente entre deux appels successifs à \fBsigwaitinfo\fP() ou \fBsigtimedwait\fP()) et n'installe pas de gestionnaire pour ces signaux. Dans un programme multithreadé, le signal doit être bloqué dans tous les threads pour empêcher que le signal ne soit traité conformément à sa disposition par défaut dans un autre thread que celui exécutant \fBsigwaitinfo\fP() ou \fBsigtimedwait\fP(). .PP L'ensemble des signaux qui sont en attente pour un thread donné est l'union de l'ensemble des signaux spécifiquement en attente pour ce thread et de l'ensemble des signaux en attente pour le processus lui\-même (consultez \fBsignal\fP(7)). .PP Les tentatives pour attendre \fBSIGKILL\fP or \fBSIGSTOP\fP seront ignorées silencieusement. .PP Si plusieurs threads d'un processus sont bloqués dans \fBsigwaitinfo\fP() ou \fBsigtimedwait\fP() en attente du ou des mêmes signaux, un seul des threads recevra réellement le signal s'il est mis en attente pour le processus (dans son ensemble)\ ; on ne peut pas savoir quel thread recevra le signal. .PP \fBsigwaitinfo\fP() ou \fBsigtimedwait\fP() ne peuvent pas être utilisés pour recevoir des signaux générés de manière synchronisée, tels que le signal \fBSIGSEGV\fP qui provient d'un accès non valable à l'adresse mémoire ou \fBSIGFPE\fP qui fait suite à une erreur arithmétique. De tels signaux ne peuvent être récupérés qu'à l'aide d'un gestionnaire de signal. .PP POSIX ne spécifie pas le comportement si une valeur NULL est indiquée pour l'argument \fIdélai\fP de \fBsigtimedwait\fP(), permettant par exemple d'avoir le même comportement que celui de \fBsigwaitinfo\fP(), ce qui est le cas sous Linux. .SH "VOIR AUSSI" \fBkill\fP(2), \fBsigaction\fP(2), \fBsignal\fP(2), \fBsignalfd\fP(2), \fBsigpending\fP(2), \fBsigprocmask\fP(2), \fBsigqueue\fP(3), \fBsigsetops\fP(3), \fBsigwait\fP(3), \fBtimespec\fP(3), \fBsignal\fP(7), \fBtime\fP(7) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Cédric Boutillier , Frédéric Hantrais et Jean-Philippe MENGUAL . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .