Manpages

이 름

setjmp, sigsetjmp − 비 지 역 탈 출 (non-local goto)을 위 해 스 택 내 용 (stack context)을 저 장 한 다 .

사 용 법

#include <setjmp.h>

int setjmp(jmp_buf env);
int sigsetjmp(sigjmp_buf
env, int savesigs);

설 명

setjmp()longjmp()는 프 로 그 램 의 하 위 레 벨 루 틴 에 서 만 나 는 오 류 와 인 터 럽 트 를 처 리 할 때 유 용 하 다 . setjmp()는 나 중 에 longjmp() 함 수 가 사 용 할 수 있 도 록 하 기 위 해 env에 스 택 내 용 과 환 경 변 수 를 저 장 한 다 . setjmp()를 호 출 한 함 수 가 반 환 되 었 다 면 , 스 택 내 용 은 무 효 하 게 된 다 .

sigsetjmp()setjmp() 함 수 와 비 슷 하 다 . 만 일 savesigs가 0 이 아 니 라 면 , 봉 쇄 된 신 호 집 합 들 은 env에 저 장 되 고 만 일 siglongjmp()env과 함 께 나 중 에 작 동 된 다 면 복 구 된 다 .

반 환 값

setjmp()sigsetjmp() 는 직 접 반 환 된 다 면 0 이 반 환 된 다 . 그 리 고 , 저 장 된 내 용 을 사 용 하 는 longjmp()에 서 반 환 된 다 면 0 이 아 닌 값 으 로 반 환 된 다 .

호 환

POSIX, ISO 9899

주 의

POSIX에 서 는 setjmp()가 신 호 내 용 을 저 장 하 는 지 에 대 해 명 료 하 지 않 다 . (SYSV에 서 는 저 장 하 지 않 는 다 . DBD4.3는 저 장 하 며 , 그 렇 지 않 는 함 수 _setjmp()가 있 다 .) 신 호 마 스 크 를 저 장 하 고 싶 다 면 , sigsetjmp()를 사 용 하 라 .

setjmp()sigsetjmp()는 프 로 그 램 을 이 해 하 고 유 지 하 는 데 어 렵 게 만 든 다 . 다 른 방 법 이 가 능 하 면 그 것 을 사 용 하 라 .

관 련 항 목

longjmp(3), siglongjmp(3)

번 역

정 강 훈 <skyeyes [AT] soback.net> 2001년 1월 10일
한 글 Manpage 프 로 젝 트 (http://man.kldp.org) 2004년 3월 25일