Provided by: manpages-fr-dev_3.57d1p1-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(3) 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.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). 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)