setjmp

Autres langues

Langue: ko

Version: 1997년 3월 2일 (fedora - 25/11/07)

Section: 3 (Bibliothèques de fonctions)

이름

setjmp, sigsetjmp - 비-지역 탈출(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일