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