`jmp_buf` 타입

jmp_buf 타입 (jmp_buf)

프로그램의 실행 상태를 저장해 두고 나중에 그 지점으로 되돌아가는 '비지역 점프(non-local jump)'라는 기법이 있어요. 그 실행 위치를 담아 두는 저장소 역할을 하는 타입이 바로 jmp_buf예요. 직접 초기화할 일은 거의 없고, setjmplongjmp가 서로 주고받는 그릇으로만 쓰여요.

출처: cppreference

본문

타입 정의

<setjmp.h>에 정의돼 있어요.

typedef /* unspecified */ jmp_buf;

설명 (Explanation)

jmp_buf호출 환경(calling environment)을 복원하는 데 필요한 정보를 저장하기에 알맞은 배열 타입(array type)이에요. 저장된 정보는 프로그램의 올바른 코드 블록과 그 블록의 호출 지점에서 실행을 재개할 수 있을 만큼 충분해요.

중요한 제한이 있어요. jmp_buf 객체에는 부동소수점 상태 플래그, 열려 있는 파일, 그 밖의 데이터 상태는 저장되지 않아요.

같이 보기 (See also)

  • setjmp — 문맥 저장
  • longjmp — 지정된 위치로 점프