Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

       setjmp, sigsetjmp - Sauver le contexte de pile pour un saut non local

SYNOPSIS

       #include <setjmp.h>

       int setjmp(jmp_buf env);

       int sigsetjmp(sigjmp_buf env, int savesigs);

   Exigences    de    macros    de   test   de   fonctionnalités   pour   la   glibc   (consultez
   feature_test_macros(7)) :

       setjmp() : consultez la section NOTES.
       sigsetjmp() : _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE

DESCRIPTION

       Les  fonctions  setjmp()  et  longjmp(3)  sont  utiles  pour  gérer  les  erreurs  et  les
       interruptions rencontrées dans des routines bas-niveau. setjmp() sauvegarde le contexte de
       pile et d'environnement dans env afin de l'utiliser  ultérieurement  avec  longjmp(3).  Le
       contexte de pile sera invalide si la fonction qui appelle setjmp() se termine.

       sigsetjmp() est semblable à setjmp(). Si, et seulement si, savesigs est non nul, le masque
       de signaux  actuel  du  processus  est  sauvegardé  dans  env,  et  sera  rétabli  lorsque
       siglongjmp(3) sera invoqué avec ce contexte env.

VALEUR RENVOYÉE

       setjmp() et sigsetjmp() renvoient 0 lorsqu'elles reviennent directement, et une valeur non
       nulle si elles reviennent à travers un appel à longjmp(3) ou siglongjmp(3) en utilisant le
       contexte sauvegardé.

CONFORMITÉ

       C89, C99 et POSIX.1-2001 spécifient setjmp(). POSIX.1-2001 spécifie sigsetjmp().

NOTES

       POSIX  ne  spécifie pas si setjmp() sauve le masque de signaux (pour être ensuite restauré
       lors de longjmp(3)). Sous System V, ce n'est pas le cas.  Sous  BSD 4.3,  le  masque  sera
       sauvé et il y a une fonction _setjmp qui ne fait pas la copie. Sous Linux avec glibc avant
       la  version 2.19,  setjmp()  suit  le  comportement  de  System V  par  défaut,  mais   le
       comportement  BSD  est  fournit  si  la  macro  de test de fonctionnalités _BSD_SOURCE est
       définie  et  qu’aucune   des   macros   _POSIX_SOURCE,   _POSIX_C_SOURCE,   _XOPEN_SOURCE,
       _XOPEN_SOURCE_EXTENDED,  _GNU_SOURCE  ou  _SVID_SOURCE  n'est  définie. Depuis glibc 2.19,
       <setjmp.h> n’expose que la version System V de setjmp(). Les programmes ayant besoin de le
       sémantique  BSD  devraient  remplacer les appels de setjmp() par des appels de sigsetjmp()
       avec un argument savesigs non nul.

       Si vous souhaitez sauver et restaurer le masque de signaux  de  façon  portable,  utilisez
       sigsetjmp() et siglongjmp(3).

       setjmp()  et sigsetjmp() rendent les programmes difficiles à comprendre et à maintenir. Si
       possible, essayez d'utiliser une autre méthode.

VOIR AUSSI

       longjmp(3), siglongjmp(3)

COLOPHON

       Cette page fait partie de la publication 3.57 du projet man-pages Linux.  Une  description
       du  projet  et  des  instructions  pour  signaler  des  anomalies  peuvent être trouvées à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis   2010,   cette   traduction   est   maintenue   à   l'aide   de    l'outil    po4a
       <http://po4a.alioth.debian.org/>  par l'équipe de traduction francophone au sein du projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe   Blaess   <http://www.blaess.fr/christophe/>   (1996-2003),    Alain    Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Nicolas  François  et  l'équipe francophone de
       traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>   ou   par   un  rapport  de  bogue  sur  le  paquet
       manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document  en  utilisant  la
       commande « man -L C <section> <page_de_man> ».

                                          7 janvier 2014                                SETJMP(3)