restart_syscall(2) System Calls Manual restart_syscall(2) NOM restart_syscall - Redemarrer un appel systeme apres qu'il a ete interrompu par un signal d'arret SYNOPSIS long restart_syscall(void); Note : il n'existe pas d'enveloppe pour cet appel systeme dans la glibc ; voir NOTES. DESCRIPTION L'appel systeme restart_syscall() est utilise pour redemarrer certains appels systeme lorsqu'un processus qui a ete arrete par un signal (par exemple SIGSTOP ou SIGTSTP) est ensuite relance par un signal SIGCONT. Cet appel systeme est exclusivement destine a un usage interne par le noyau. restart_syscall() est utilise pour redemarrer uniquement les appels systeme qui, lorsqu'ils sont redemarres, doivent ajuster leurs parametres temporels -- c'est-a-dire poll(2) (a partir de Linux 2.6.24), nanosleep(2) (a partir de Linux 2.6), clock_nanosleep(2) (a partir de Linux 2.6) et futex(2), lorsqu'il est utilise avec les operations FUTEX_WAIT (a partir de 2.6.22) et FUTEX_WAIT_BITSET (a partir de Linux 2.6.31). restart_syscall() redemarre l'appel systeme interrompu avec un parametre de temps ajuste pour prendre en compte le temps ecoule (comprenant le temps d'arret du processus par le signal). Sans le mecanisme restart_syscall(), l'estimation du temps ecoule pourrait ne pas etre correctement effectuee lors du redemarrage de ces appels systeme. VALEUR RENVOYEE La valeur renvoyee par restart_syscall() est celle renvoyee par l'appel systeme qui est redemarre. ERREURS errno est defini selon l'erreur avec la meme valeur que celle definie par l'appel systeme qui est redemarre par restart_syscall(). STANDARDS Linux. HISTORIQUE Linux 2.6. NOTES Il n'y a pas d'enrobage glibc pour cet appel systeme puisqu'il ne doit etre appele que par le noyau et jamais par une application. Le noyau utilise restart_syscall() pour s'assurer que quand un appel redemarre apres que le processus ait ete arrete par un signal puis reveille par un SIGCONT, le temps que le processus a passe arrete soit pris en compte dans l'intervalle du delai indique dans l'appel systeme d'origine. Pour les appels systeme qui prennent un parametre de delai et redemarrent automatiquement apres un signal d'arret et un SIGCONT, sans avoir construit le mecanisme restart_syscall(), apres la reprise de l'execution du processus, le temps passe a l'arret par le processus n'est pas pris en compte dans la valeur de delai. Parmi les exemples remarquables d'appels systeme souffrant de ce probleme, on trouve ppoll(2), select(2) et pselect(2). Depuis l'espace utilisateur, l'execution de restart_syscall(2) est pratiquement transparente : du point de vue du processus auteur de l'appel systeme qui est redemarre, tout se passe comme si l'appel systeme s'executait et se relancait de facon habituelle. VOIR AUSSI sigaction(2), sigreturn(2), signal(7) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Cedric Boutillier , Frederic Hantrais et Jean-Philippe MENGUAL Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 restart_syscall(2)