다음을 통해 공유


longjmp

복원 실행 및 환경 로케일을 쌓습니다.

void longjmp(
   jmp_buf env,
   int value 
);

매개 변수

  • env
    환경에 저장 하는 데 사용 되는 변수입니다.

  • value
    값을 반환할 수 setjmp 를 호출 합니다.

설명

longjmp 함수는 스택 환경 복원 및 로캘을 실행 이전 저장에서 env 에서 setjmp.setjmplongjmp 에 nonlocal 실행할 수 있습니다 goto. 이들은 일반적으로 일반 전화를 사용 하지 않고 실행 제어 복구 하거나 오류 처리 코드를 이전에 호출된 된 루틴에 전달 하는 데 사용 됩니다 및 규칙을 반환 합니다.

호출을 setjmp 에서 저장 현재 스택 환경 env.대 한 후속 호출을 longjmp 저장 된 환경 복원 되 고 컨트롤에 해당 하는 바로 다음 지점으로 반환 setjmp 를 호출 합니다.실행 다시 시작 처럼 가 방금 반환 된는 setjmp 를 호출 합니다.갖고 있던 때 값 컨트롤을 받는 루틴을 액세스할 수 있는 변수 (등록 제외) 모든 변수 값을 포함 longjmp 가 호출 되었습니다.레지스터 변수 값을 예측할 수 없습니다.반환 된 값 setjmp 0이 아닌 값 이어야 합니다.경우 전달 된 실제 반환에 값 1을 0으로 대체 합니다.

호출 longjmp 함수를 호출 하기 전에 setjmp 를 반환 합니다. 그렇지 않으면 결과 예측할 수 없습니다.

사용 하는 경우 다음과 같은 제한을 준수 longjmp:

  • 레지스터 변수 값을 그대로 유지 되는 가정 하지 마십시오.레지스터 변수 루틴 호출에서 값을 setjmp 후 적절 한 값으로 복원할 수 있습니다 longjmp 를 실행 합니다.

  • 사용 하지 않는 longjmp 인터럽트에서 부동 소수점 예외가 발생 하지 않는 한 컨트롤은 인터럽트 처리 루틴을 전송할 수 있습니다.이 경우 프로그램에서 인터럽트 처리기를 통해 반환 될 수 있습니다 longjmp 이 먼저 부동 소수점 연산이 패키지를 호출 하 여 초기화 하는 경우 _fpreset.

    참고 를 사용할 때 주의 해야 setjmplongjmp C++ 프로그램에서.이러한 기능은 C++ 개체 의미를 지원 하지 않는 때문에 C++ 예외 처리 메커니즘을 사용 하는 것이 좋습니다.

자세한 내용은 longjmp 및 setjmp를 사용 하 여.

요구 사항

루틴

필수 헤더

longjmp

<setjmp.h>

추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

라이브러리

모든 버전의 C 런타임 라이브러리.

예제

예제를 보려면 _fpreset.

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.

참고 항목

참조

프로세스 및 환경 제어

setjmp