.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2008, 2014, Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Created Sat Aug 21 1995 Thomas K. Dyas .\" Modified Tue Oct 22 22:09:03 1996 by Eric S. Raymond .\" 2008-06-26, mtk, added some more detail on the work done by sigreturn() .\" 2014-12-05, mtk, rewrote all of the rest of the original page .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH sigreturn 2 "30 mars 2023" "Pages du manuel de Linux 6.05.01" .SH NOM sigreturn, rt_sigreturn \- Revenir d'un gestionnaire de signaux et nettoyer la pile .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP) .SH SYNOPSIS .nf \fBint sigreturn(...);\fP .fi .SH DESCRIPTION .\" See arch/x86/kernel/signal.c::__setup_frame() [in Linux 3.17 source code] Si le noyau Linux détermine qu'un signal non bloqué est en attente d'un processus, au prochain retour en mode utilisateur de ce processus (par exemple au retour d'un appel système ou quand le processus est réordonnancé sur le processeur), il créera un nouvel emplacement dans la pile de l'espace utilisateur où il enregistrera des morceaux de contexte de processus (mot sur l'état du processeur, registres, masque de signal et paramètres de la pile du signal). .PP Le noyau s'arrange aussi pour que, lors du retour à l'espace utilisateur, le gestionnaire de signal soit appelé et pour qu'au retour du gestionnaire, le contrôle soit redonné à un bout de code de l'espace utilisateur appelé généralement le «\ trampoline de signal\ ». En retour, ce code appelle \fBsigreturn\fP(). .PP Cet appel à \fBsigreturn\fP() défait tout ce qui a été fait \[em] modifier le masque de signaux du processus, commutation des piles (consultez \fBsigaltstack\fP(2)) \[em] de façon à invoquer le gestionnaire de signal. L'utilisation des informations précédemment sauvegardées dans la pile de l'espace utilisateur \fBsigreturn\fP() restaure le masque de signal du processus, commute les piles et restaure le contexte du processus (drappeaux et registres du processeur, notamment le pointeur de la pile et les instructions du pointeur), de sorte que le processus reprenne son exécution au point où il a été interrompu par le signal. .SH "VALEUR RENVOYÉE" \fBsigreturn\fP() ne renvoit jamais. .SH VERSIONS De nombreux systèmes de type UNIX ont un appel système \fBsigreturn\fP() ou presque équivalent. Cependant, cet appel n'est pas spécifié dans POSIX et les détails de son comportement varient en fonction des systèmes. .SH STANDARDS Aucun. .SH NOTES .\" See sysdeps/unix/sysv/linux/sigreturn.c and .\" signal/sigreturn.c in the glibc source \fBsigreturn\fP() n'existe que pour permettre l'implémentation de gestionnaires de signal. Il ne devrait \fBjamais\fP être appelé directement (en effet, une simple enveloppe \fBsigreturn\fP() de la bibliothèque GNU C renvoie simplement \fB\-1\fP et \fIerrno\fP est positionné sur \fBENOSYS\fP). Les détails des paramètres (s'il y en a) passés à \fBsigreturn\fP() varient selon l'architecture (sur certaines architectures telles que x86\-64, \fBsigreturn\fP() ne prend aucun paramètre puisque toutes les informations dont il a besoin sont disponibles dans la pile créée précédemment par le noyau dans la pile de l'espace utilisateur). .PP .\" See, for example, sysdeps/unix/sysv/linux/i386/sigaction.c and .\" sysdeps/unix/sysv/linux/x86_64/sigaction.c in the glibc (2.20) source. Autrefois, les systèmes UNIX mettaient le code du trampoline de signal dans la pile utilisateur. De nos jours, les pages de la pile utilisateur sont protégées pour interdire l'exécution d'un code. Ainsi, sur les systèmes Linux contemporains, selon l'architecture, le code du trampoline de signal réside soit dans le \fBvdso\fP(7), soit dans la bibliothèque\ C. Dans ce dernier cas, la fonction enveloppe \fBsigaction\fP(2) de la bibliothèque\ C informe le noyau de l'emplacement du code du trampoline en mettant son adresse dans le champ \fIsa_restorer\fP de la structure \fIsigaction\fP et il positonne le drapeau \fBSA_RESTORER\fP dans le champ \fIsa_flags\fP. .PP Les informations du contexte du processus sauvegardées vont dans la structure \fIucontext_t\fP (consultez \fI\fP). Cette structure est visible à l'intérieur du gestionnaire de signal comme le troisième paramètre d'un gestionnaire mis en place à l'aide de \fBsigaction\fP(2) avec le drapeau \fBSA_SIGINFO\fP. .PP .\" Sur d'autres systèmes UNIX, l'opération de trampoline du signal diffère quelque peu. En particulier, sur certains systèmes où il y a une transition vers le retour à l'espace utilisateur, le noyau donne le contrôle au trampoline (plutôt qu'au gestionnaire de signal) et le code du trampoline appelle le gestionnaire de signal (puis appelle \fBsigreturn\fP() après le renvoi du gestionnaire de signal). .SS "Différences entre bibliothèque C et noyau" .\" L'appel système Linux d'origine s'appelait \fBsigreturn\fP(). Toutefois, avec l'arrivée des signaux en temps réel dans Linux\ 2.2, un nouvel appel système, \fBrt_sigreturn\fP(), a été ajouté pour prendre en charge un type \fIsigset_t\fP élargi. La bibliothèque GNU\ C nous cache ces détails en appelant de manière transparente \fBrt_sigreturn\fP() quand le noyau le fournit. .SH "VOIR AUSSI" \fBkill\fP(2), \fBrestart_syscall\fP(2), \fBsigaltstack\fP(2), \fBsignal\fP(2), \fBgetcontext\fP(3), \fBsignal\fP(7), \fBvdso\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 .