longjmp

Autres langues

Langue: fr

Version: 2 mars 1997 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

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);
 

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 de 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 restorer le masque de signaux, utilisez 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)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 4 novembre 1996 et révisée le 19 novembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 longjmp ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.