Provided by: manpages-fr-dev_2.80.1-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 pour les macros de test de fonctionnalité de la glibc  (consultez
   feature_test_macros(7)) :

       siglongjmp() : _POSIX_C_SOURCE || _XOPEN_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() hormis le type de  son  argument
       env.   Si   l’argument   savesigs  est  non  nul  lors  de  l’appel  de
       sigsetjmp(3), alors siglongjmp() restituera  également  l’ensemble  des
       signaux bloqués.

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() restaure le contexte  de  signal.  Si
       vous  voulez  sauver  et  restaurer  le  masque  de  signaux,  utilisez
       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  2.80  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

       Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
       Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
       Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Florentin Duneau <fduneau@gmail.com> et l’équipe
       francophone de traduction de Debian.

       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> ».

                               6 septembre 2007                     LONGJMP(3)