setjmp

Autres langues

Langue: ja

Version: 1997-03-02 (openSuse - 09/10/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(3) ¤Ï¡¢¥×¥í¥°¥é¥à¤ÎÄã¥ì¥Ù¥ë¤Ê¥µ¥Ö¥ë¡¼¥Á¥ó ¤Ë¤ª¤¤¤Æ¡¢¥¨¥é¡¼¤ä³ä¤ê¹þ¤ß¤¬È¯À¸¤·¤¿»þ¤Î½èÍý¤ËÊØÍø¤Ç¤¢¤ë¡£ setjmp() ¤Ï¡¢ longjmp(3) ¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤ë env ¤Ë ¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È/¥¹¥¿¥Ã¥¯´Ä¶­¤òÊݸ¤¹¤ë¡£ setjmp() ¤ò¸Æ¤Ó½Ð¤·¤¿ ´Ø¿ô¤¬ÊÖ¤ë¤È¤­¡¢¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È¤Ï̵¸ú¤Ë¤Ê¤ë¡£ sigsetjmp() ¤Ï setjmp() ¤Ë»÷¤Æ¤¤¤ë¡£ ¤â¤·¡¢ savesigs ¤¬¥¼¥í¤Ç¤Ê¤¤¤Ê¤é¡¢ÁË»ß(block)¤µ¤ì¤Æ¤¤¤ë¥·¥°¥Ê¥ë¤â env ¤ËÊݸ¤µ¤ì¡¢ ¸å¤Ë siglongjmp(3) ¤¬ env ¤È¤È¤â¤Ë¹Ô¤ï¤ì¤¿¤Ê¤é¡¢¸µ¤ËÌᤵ¤ì¤ë¡£

ÊÖ¤êÃÍ

ľÀÜÊ֤äƤ¯¤ë¤È¤­¤Ï¡¢ setjmp() ¤È sigsetjmp() ¤Ï 0 ¤òÊÖ¤·¡¢ ¥³¥ó¥Æ¥­¥¹¥È¤òÊݸ¤·¤¿ longjmp(3) ¤«¤éÊ֤äƤ¯¤ë¤È¤­¤Ï¡¢¥¼¥í°Ê³°¤òÊÖ¤¹¡£

½àµò

setjmp() ¤Ï C89, C99, POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ sigsetjmp() ¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£

Ãí°Õ

POSIX ¤Ï¡¢ setjmp() ¤¬¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È(signal context) ¤òÊݸ¤¹¤Ù¤­¤« ¤É¤¦¤«¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤ (System V ¤Ç¤ÏÊݸ¤·¤Ê¤¤¡£ 4.3BSD ¤Ç¤ÏÊݸ¤¹¤ë¡£ 4.3BSD ¤Ë¤ÏÊݸ¤·¤Ê¤¤´Ø¿ô _setjmp ¤â¤¢¤ë)¡£ ¤â¤·¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊݸ¤·¤¿¤¤¤Î¤Ê¤é¡¢ sigsetjmp() ¤ò»È¤¦¤³¤È¡£ setjmp() ¤È sigsetjmp() ¤Ï¥×¥í¥°¥é¥à¤òÍý²ò¤·¤Å¤é¤¯¡¢Êݼ餷 ¤Ë¤¯¤¤¤â¤Î¤Ë¤¹¤ë¡£ Ê̤ÎÊýË¡¤¬²Äǽ¤Ê¤é¡¢¤½¤ì¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£

´ØÏ¢¹àÌÜ

longjmp(3), siglongjmp(3)