Compartir a través de


setjmp

Guarda el estado actual del programa.

int setjmp(
   jmp_buf env 
);

Parámetros

  • env
    Variable en la que se almacena el entorno.

Valor devuelto

Devuelve 0 después de guardar el entorno de la pila. Si setjmp devuelve como resultado de una llamada de longjmp , devuelve el argumento de value de longjmp, o si el argumento de value de longjmp es 0, setjmp devuelve 1. No se devuelve ningún error.

Comentarios

La función de setjmp guarda un entorno de pila, que puede restaurar posteriormente, mediante longjmp. Cuando se usa juntos, setjmp y longjmp proporcionan una manera de ejecutar un no local goto. Se suelen utilizar para pasar el control de ejecución al código de control de errores o la recuperación en una rutina previamente denominada sin utilizar convenciones normales de llamada o return.

Una llamada a setjmp guarda el entorno de la pila actual en env. Una llamada subsiguiente a longjmp restaura el entorno guardado y devuelve el control al punto justo después de la llamada correspondiente de setjmp . Todas las variables (excepto variables de registro) que el control que recibe rutinario contienen valores que tenían cuando longjmp se llamó.

No es posible utilizar setjmp para saltar de código nativo a código administrado.

Nota   setjmp y longjmp no admiten la semántica de objeto de C++. En los programas de C++, utilice el mecanismo de control de excepciones de C++.

Para obtener más información, vea Mediante setjmp y longjmp.

Requisitos

Rutina

Encabezado necesario

setjmp

<setjmp.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.

Ejemplo

Vea el ejemplo para _fpreset.

Equivalente en .NET Framework

No es aplicable Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

Vea también

Referencia

Control de proceso y de entorno

longjmp

_setjmp3