longjmp

Autres langues

Langue: ja

Version: 1997-03-02 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

̾Á°

longjmp, siglongjmp - Êݸ¤µ¤ì¤¿¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È (stack context) ¤Ø¤Î¥í¡¼¥«¥ë¤Ç¤Ê¤¤¥¸¥ã¥ó¥×

½ñ¼°

#include <setjmp.h>

void longjmp(jmp_buf env, int val);

void siglongjmp(sigjmp_buf env, int val);

ÀâÌÀ

longjmp() ¤È setjmp(3) ¤Ï¡¢¥×¥í¥°¥é¥à¤ÎÄã¥ì¥Ù¥ë¤Ê¥µ¥Ö¥ë¡¼¥Á¥ó ¤Ë¤ª¤¤¤Æ¡¢¥¨¥é¡¼¤ä³ä¤ê¹þ¤ß¤¬È¯À¸¤·¤¿»þ¤Î½èÍý¤ËÊØÍø¤Ç¤¢¤ë¡£ longjmp() ¤Ï¡¢ºÇ¸å¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿ setjmp(3) ¤Ë¤è¤Ã¤ÆÊݸ¤µ¤ì¤¿ ´Ä¶­¤ò°ú¤­¿ô env ¤Ë¤È¤ê¡¢¤³¤ì¤òÉü¸µ¤¹¤ë¡£ longjmp() ¤Î½ªÎ»¸å¡¢ ¥×¥í¥°¥é¥à¤Ï¤¢¤¿¤«¤â¡¢°ÊÁ°¸Æ¤Ó½Ð¤µ¤ì¤¿ setjmp(3) ¤¬ÃÍ val ¤Ç Ìá¤Ã¤Æ¤­¤¿¤è¤¦¤Ë³¹Ô¤µ¤ì¤ë¡£ longjmp() ¤Ï¡¢0 ¤òÊÖ¤¹¤³¤È¤Ï½ÐÍè¤Ê¤¤¡£ ¤â¤·¡¢ longjmp() ¤Î£²ÈÖÌܤΰú¿ô¤¬ 0 ¤È¤·¤Æ¸Æ¤Ð¤ì¤¿¤Ê¤é¤Ð¡¢Âå¤ï¤ê¤Ë 1 ¤òÊÖ¤¹¡£ siglongjmp() ¤Ï°ú¤­¿ô env ¤Î·¿¤¬°Û¤Ê¤ë¤Î¤ò½ü¤¤¤Æ¡¢ longjmp() ¤Ë»÷¤Æ¤¤¤ë¡£savesigs ¥Õ¥é¥°¤ò¥¼¥í°Ê³°¤Ë»ØÄꤷ¤¿ sigsetjmp(3) ¥³¡¼¥ë¤ÇÀßÄꤵ¤ì¤¿ env ¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ë¡¢ siglongjmp() ¤Ï ÁË»ß(block)¤µ¤ì¤Æ¤¤¤¿¥·¥°¥Ê¥ë¤òÉü¸µ¤¹¤ë¡£

ÊÖ¤êÃÍ

¤³¤ì¤é¤Î´Ø¿ô¤Ï·è¤·¤Æ(¸Æ¤Ó½Ð¤·Â¦¤Ë)ÊÖ¤é¤Ê¤¤¡£

½àµò

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

Ãí°Õ

POSIX ¤Ï¡¢ longjmp() ¤¬¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È(signal context) ¤òÊݸ¤¹¤Ù¤­¤« ¤É¤¦¤«ÆÃÄꤷ¤Æ¤¤¤Ê¤¤¡£ ¤â¤·¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊݸ/Éüµ¢¤µ¤»¤¿¤¤¤Î¤Ê¤é¡¢ siglongjmp() ¤ò»È¤¦¡£ longjmp() ¤È siglongjmp() ¤Ï¥×¥í¥°¥é¥à¤òÍý²ò¤·¤Å¤é¤¯¡¢Êݼ餷 ¤Ë¤¯¤¤¤â¤Î¤Ë¤¹¤ë¡£Ê̤ÎÊýË¡¤¬²Äǽ¤Ê¤é¡¢¤½¤ì¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£

´ØÏ¢¹àÌÜ

setjmp(3), sigsetjmp(3)