longjmp
복원 실행 및 환경 로케일을 쌓습니다.
void longjmp(
jmp_buf env,
int value
);
매개 변수
env
환경에 저장 하는 데 사용 되는 변수입니다.value
값을 반환할 수 setjmp 를 호출 합니다.
설명
longjmp 함수는 스택 환경 복원 및 로캘을 실행 이전 저장에서 env 에서 setjmp.setjmp및 longjmp 에 nonlocal 실행할 수 있습니다 goto. 이들은 일반적으로 일반 전화를 사용 하지 않고 실행 제어 복구 하거나 오류 처리 코드를 이전에 호출된 된 루틴에 전달 하는 데 사용 됩니다 및 규칙을 반환 합니다.
호출을 setjmp 에서 저장 현재 스택 환경 env.대 한 후속 호출을 longjmp 저장 된 환경 복원 되 고 컨트롤에 해당 하는 바로 다음 지점으로 반환 setjmp 를 호출 합니다.실행 다시 시작 처럼 값 가 방금 반환 된는 setjmp 를 호출 합니다.갖고 있던 때 값 컨트롤을 받는 루틴을 액세스할 수 있는 변수 (등록 제외) 모든 변수 값을 포함 longjmp 가 호출 되었습니다.레지스터 변수 값을 예측할 수 없습니다.반환 된 값 setjmp 0이 아닌 값 이어야 합니다.경우 값 전달 된 실제 반환에 값 1을 0으로 대체 합니다.
호출 longjmp 함수를 호출 하기 전에 setjmp 를 반환 합니다. 그렇지 않으면 결과 예측할 수 없습니다.
사용 하는 경우 다음과 같은 제한을 준수 longjmp:
레지스터 변수 값을 그대로 유지 되는 가정 하지 마십시오.레지스터 변수 루틴 호출에서 값을 setjmp 후 적절 한 값으로 복원할 수 있습니다 longjmp 를 실행 합니다.
사용 하지 않는 longjmp 인터럽트에서 부동 소수점 예외가 발생 하지 않는 한 컨트롤은 인터럽트 처리 루틴을 전송할 수 있습니다.이 경우 프로그램에서 인터럽트 처리기를 통해 반환 될 수 있습니다 longjmp 이 먼저 부동 소수점 연산이 패키지를 호출 하 여 초기화 하는 경우 _fpreset.
참고 를 사용할 때 주의 해야 setjmp 및 longjmp C++ 프로그램에서.이러한 기능은 C++ 개체 의미를 지원 하지 않는 때문에 C++ 예외 처리 메커니즘을 사용 하는 것이 좋습니다.
자세한 내용은 longjmp 및 setjmp를 사용 하 여.
요구 사항
루틴 |
필수 헤더 |
---|---|
longjmp |
<setjmp.h> |
추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.
라이브러리
모든 버전의 C 런타임 라이브러리.
예제
예제를 보려면 _fpreset.
해당 .NET Framework 항목
해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.