Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       longjmp,  siglongjmp  -  Saut  non  local  vers  un  contexte  de  pile
       sauvegardé

SYNOPSIS

       #include <setjmp.h>

       void longjmp(jmp_buf env, int val);

       void siglongjmp(sigjmp_buf env, int val);

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

       siglongjmp() : _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE

DESCRIPTION

       longjmp()  et  setjmp(3)  sont  utiles  pour  la  gestion  d'erreurs et
       d'interruptions rencontrées dans une routine bas-niveau d'un programme.
       longjmp()  restitue l'environnement sauvegardé lors du dernier appel de
       setjmp(3) avec l'argument env correspondant. Après  l'appel  longjmp(),
       l'exécution  du  programme  continue  comme si l'appel correspondant de
       setjmp(3) venait juste de renvoyer val. longjmp() ne peut pas  renvoyer
       0.  Si longjmp est appelé avec 0 en tant que second argument, setjmp(3)
       renverra 1 à la place.

       siglongjmp() est identique à longjmp() excepté  pour  le  type  de  son
       argument  env. Si et seulement si l'appel sigsetjmp(3) définit cet env,
       utilisé comme drapeau savesigs non nul, alors  siglongjmp()  restituera
       également le signal masqué qui a été sauvé par sigsetjmp(3).

VALEUR RENVOYÉE

       Ces fonctions ne reviennent jamais.

CONFORMITÉ

       C89,  C99  et  POSIX.1-2001 spécifient longjmp(). POSIX.1-2001 spécifie
       siglongjmp().

NOTES

       POSIX ne précise pas si longjmp()  restaurera  le  contexte  du  signal
       (consultez  setjmp(3)  pour  plus de détails). Si vous voulez sauver et
       restaurer le masque de signaux de façon portable, utilisez  sigsetjmp()
       et siglongjmp().

       Les  valeurs des variables automatiques ne sont pas spécifiées après un
       appel à longjmp() si elles suivent tous les critères suivants :

       ·  elles sont locales à la fonction qui effectue l'appel  correspondant
          setjmp(3) ;

       ·  leur valeur est changée entre les appels setjmp(3) et longjmp() ;

       ·  elles ne sont pas déclarées comme volatile.

       Ces remarques s'appliquent aussi à siglongjmp().

       longjmp()   et   siglongjmp()   rendent  les  programmes  difficiles  à
       comprendre et à maintenir. Il est préférable si possible d'utiliser une
       autre méthode.

VOIR AUSSI

       setjmp(3), sigsetjmp(3)

COLOPHON

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

TRADUCTION

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

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).  Florentin
       Duneau 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> ».

                                13 janvier 2009                     LONGJMP(3)