Provided by:
manpages-fr-dev_3.32d0.2p4-1_all 
NOM
longjmp, siglongjmp - Saut non local vers un contexte de pile
sauvegarde
SYNOPSIS
#include <setjmp.h>
void longjmp(jmp_buf env, int val);
void siglongjmp(sigjmp_buf env, int val);
Exigences de macros de test de fonctionnalites 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 rencontrees dans une routine bas-niveau d'un programme.
longjmp() restitue l'environnement sauvegarde lors du dernier appel de
setjmp(3) avec l'argument env correspondant. Apres l'appel longjmp(),
l'execution 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 appele avec 0 en tant que second argument, setjmp(3)
renverra 1 a la place.
siglongjmp() est identique a longjmp() excepte pour le type de son
argument env. Si et seulement si l'appel sigsetjmp(3) definit cet env,
utilise comme drapeau savesigs non nul, alors siglongjmp() restituera
egalement le signal masque qui a ete sauve par sigsetjmp(3).
VALEUR RENVOY'EE
Ces fonctions ne reviennent jamais.
CONFORMIT'E
C89, C99 et POSIX.1-2001 specifient longjmp(). POSIX.1-2001 specifie
siglongjmp().
NOTES
POSIX ne precise pas si longjmp() restaurera le contexte du signal
(consultez setjmp(3) pour plus de details). Si vous voulez sauver et
restaurer le masque de signaux de facon portable, utilisez sigsetjmp()
et siglongjmp().
Les valeurs des variables automatiques ne sont pas specifiees apres un
appel a longjmp() si elles suivent tous les criteres suivants :
o elles sont locales a la fonction qui effectue l'appel correspondant
setjmp(3) ;
o leur valeur est changee entre les appels setjmp(3) et longjmp() ;
o elles ne sont pas declarees comme volatile.
Ces remarques s'appliquent aussi a siglongjmp().
longjmp() et siglongjmp() rendent les programmes difficiles a
comprendre et a maintenir. Il est preferable si possible d'utiliser une
autre methode.
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 etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe 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'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.
13 janvier 2009 LONGJMP(3)