Funzione libreria C - longjmp ()

Descrizione

La funzione di libreria C. void longjmp(jmp_buf environment, int value) ripristina l'ambiente salvato dalla chiamata più recente a setjmp() macro nella stessa chiamata del programma con il corrispondente jmp_buf discussione.

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione longjmp ().

void longjmp(jmp_buf environment, int value)

Parametri

  • environment - Questo è l'oggetto del tipo jmp_buf contenente informazioni per ripristinare l'ambiente nel punto di chiamata di setjmp.

  • value - Questo è il valore a cui il setjmp espressione valuta.

Valore di ritorno

Questa funzione non restituisce alcun valore.

Esempio

L'esempio seguente mostra l'utilizzo della funzione 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");
}

Compiliamo ed eseguiamo il programma sopra che produrrà il seguente risultato:

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