Fonction de bibliothèque C - longjmp ()

La description

La fonction de bibliothèque C void longjmp(jmp_buf environment, int value) restaure l'environnement sauvegardé par le dernier appel à setjmp() macro dans le même appel du programme avec le correspondant jmp_buf argument.

Déclaration

Voici la déclaration de la fonction longjmp ().

void longjmp(jmp_buf environment, int value)

Paramètres

  • environment - C'est l'objet de type jmp_buf contenant des informations pour restaurer l'environnement au point d'appel de setjmp.

  • value - C'est la valeur à laquelle le setjmp expression évalue.

Valeur de retour

Cette fonction ne renvoie aucune valeur.

Exemple

L'exemple suivant montre l'utilisation de la fonction longjmp ().

#include <stdio.h>
#include <stdlib.h>
#include <setjmp.h>

int main () {
   int val;
   jmp_buf env_buffer;

   /* save calling environment for longjmp */
   val = setjmp( env_buffer );
   
   if( val != 0 ) {
      printf("Returned from a longjmp() with value = %s\n", val);
      exit(0);
   }
   printf("Jump function call\n");
   jmpfunction( env_buffer );
   
   return(0);
}

void jmpfunction(jmp_buf env_buf) {
   longjmp(env_buf, "tutorialspoint.com");
}

Compilons et exécutons le programme ci-dessus qui produira le résultat suivant -

Jump function call
Returned from a longjmp() with value = tutorialspoint.com