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 hay retorno de 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, utilice PInvoke. Para obtener más información, vea La invocación de plataforma ejemplos.