SETJMP
Section: 라이브러리 함수 (3)
Updated: 1997년 3월 2일
Index
Return to Main Contents
이름
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@soback.kornet.net> 2001년 1월 10일
한글 Manpage 프로젝트 (http://man.kldp.org) 2004년 3월 25일
Index
- 이름
-
- 사용법
-
- 설명
-
- 반환값
-
- 호환
-
- 주의
-
- 관련 항목
-
- 번역
-
This document was created by
man2html,
using the manual pages.
Time: 01:20:41 GMT, March 26, 2004