Provided by: manpages-fr-dev_4.21.0-2_all 

NOM
restart_syscall - Redémarrer un appel système après qu'il a été interrompu par un signal d'arrêt
SYNOPSIS
long restart_syscall(void);
Note : il n'existe pas d'enveloppe pour cet appel système dans la glibc ; voir NOTES.
DESCRIPTION
L'appel système restart_syscall() est utilisé pour redémarrer certains appels système lorsqu'un processus
qui a été arrêté par un signal (par exemple SIGSTOP ou SIGTSTP) est ensuite relancé par un signal
SIGCONT. Cet appel système est exclusivement destiné à un usage interne par le noyau.
restart_syscall() est utilisé pour redémarrer uniquement les appels système qui, lorsqu'ils sont
redémarrés, doivent ajuster leurs paramètres temporels — c'est-à-dire poll(2) (à partir de Linux 2.6.24),
nanosleep(2) (à partir de Linux 2.6), clock_nanosleep(2) (à partir de Linux 2.6) et futex(2), lorsqu'il
est utilisé avec les opérations FUTEX_WAIT (à partir de 2.6.22) et FUTEX_WAIT_BITSET (à partir de Linux
2.6.31). restart_syscall() redémarre l'appel système interrompu avec un paramètre de temps ajusté pour
prendre en compte le temps écoulé (comprenant le temps d’arrêt du processus par le signal). Sans le
mécanisme restart_syscall(), l'estimation du temps écoulé pourrait ne pas être correctement effectuée
lors du redémarrage de ces appels système.
VALEUR RENVOYÉE
La valeur renvoyée par restart_syscall() est celle renvoyée par l'appel système qui est redémarré.
ERREURS
errno est défini selon l'erreur avec la même valeur que celle définie par l'appel système qui est
redémarré par restart_syscall().
VERSIONS
L'appel système restart_syscall() existe depuis Linux 2.6.
STANDARDS
Cet appel système est spécifique à Linux.
NOTES
Il n'y a pas d'enrobage glibc pour cet appel système puisqu'il ne doit être appelé que par le noyau et
jamais par une application.
Le noyau utilise restart_syscall() pour s'assurer que quand un appel redémarre après que le processus ait
été arrêté par un signal puis réveillé par un SIGCONT, le temps que le processus a passé arrêté soit pris
en compte dans l'intervalle du délai indiqué dans l'appel système d'origine. Pour les appels système qui
prennent un paramètre de délai et redémarrent automatiquement après un signal d'arrêt et un SIGCONT, sans
avoir construit le mécanisme restart_syscall(), après la reprise de l'exécution du processus, le temps
passé à l'arrêt par le processus n'est pas pris en compte dans la valeur de délai. Parmi les exemples
remarquables d'appels système souffrant de ce problème, on trouve ppoll(2), select(2) et pselect(2).
Depuis l'espace utilisateur, l'exécution de restart_syscall(2) est pratiquement transparente : du point
de vue du processus auteur de l'appel système qui est redémarré, tout se passe comme si l'appel système
s'exécutait et se relançait de façon habituelle.
VOIR AUSSI
sigaction(2), sigreturn(2), signal(7)
TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess
<https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud
<tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard
<fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau
<jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François
<nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard
<simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot
<david@tilapin.org>, Cédric Boutillier <cedric.boutillier@gmail.com>, Frédéric Hantrais
<fhantrais@gmail.com> et Jean-Philippe MENGUAL <jpmengual@debian.org>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License
version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à
debian-l10n-french@lists.debian.org.
Pages du manuel de Linux 6.03 5 février 2023 restart_syscall(2)