sourCEntral - mobile manpages

pdf

SETJMP

이름

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 DOT kornet DOT net> 2001년 1월 10일
한글 Manpage 프로젝트 (http://man.kldp.org) 2004년 3월 25일

pdf