|
|||||||
|
|
FENVSection: Linux Programmer's Manual (3)Updated: 12 August 2000 Index Return to Main Contents ̾Á°feclearexcept, fegetexceptflag, feraiseexcept, fesetexceptflag, fetestexcept, fegetenv, fegetround, feholdexcept, fesetround, fesetenv, feupdateenv - C99 ÉâÆ°¾®¿ôÅÀ¤Î´Ý¤á¤ÈÎã³°¤Î¼è¤ê°·¤¤½ñ¼°#include <fenv.h> void feclearexcept(int excepts); ÀâÌÀ¤³¤ì¤é¤Î 11 ¸Ä¤Î´Ø¿ô¤Ï C99 ¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢ ÉâÆ°¾®¿ôÅÀ¤Î´Ý¤á¤ÈÎã³° (¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¡¢¥¼¥í¤Ë¤è¤ë½ü»»¤Ê¤É) ¤Î¼è¤ê°·¤¤¤òµ½Ò¤¹¤ë¡£Îã³°DivideByZero Îã³°¤Ï¡¢Í¸Â¤Î¿ôÃͤËÂФ¹¤ë±é»»¤¬¡¢ ̵¸ÂÂç¤Î²òÅú¤òÀ¸À®¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£Overflow Îã³°¤Ï¡¢ ·ë²Ì¤¬ÉâÆ°¾®¿ôÅÀ¿ôÃͤÇɽµ¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ë¡¢ ¤½¤ÎÀäÂÐÃͤ¬É½¸½²Äǽ¤Ê (͸¤Î) ÉâÆ°¾®¿ôÅÀ¿ôÃͤκÇÂçÃͤè¤ê¤â (¤º¤Ã¤È) Â礤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£ Underflow Îã³°¤Ï¡¢ ·ë²Ì¤¬ÉâÆ°¾®¿ôÅÀ¿ôÃͤÇɽµ¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ë¡¢ ¤½¤ÎÀäÂÐÃͤ¬É½¸½²Äǽ¤ÊÀµ¤ÎÀµµ¬²½ÉâÆ°¾®¿ôÅÀ¿ôÃͤκǾ®Ãͤè¤ê¤â ¾®¤µ¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦ (¤½¤·¤Æ 10 ¿Ê¿ôÃͤÇɽ¸½¤·¤¿¾ì¹ç¤ËÈó¾ï¤ËÀºÅÙ¤ò¼º¤Ã¤Æ¤·¤Þ¤¦) ¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£ Inexact Îã³°¤Ï¡¢´Ý¤á¸å¤Î±é»»·ë²Ì¤¬¡¢ ̵¸ÂÀºÅ٤ηë²Ì¤È°Û¤Ê¤ë¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£ Overflow ¤Þ¤¿¤Ï Underflow ¤¬µ¯¤¤¿¤È¤¤Ë¤Ï¡¢¾ï¤Ë¤³¤ÎÎã³°¤âµ¯¤³¤ë¡£ Invalid Îã³°¤Ï¡¢±é»»·ë²Ì¤¬¤¦¤Þ¤¯ÄêµÁ¤Ç¤¤Ê¤¤·ë²Ì¤òÀ¸¤¸¤ë¤è¤¦¤Ê¾ì¹ç¤Ëµ¯¤³¤ë¡£ Î㤨¤Ð 0/0¡¢¡ç-¡ç¡¢sqrt(-1) ¤Ê¤É¡£ Îã³°½èÍýÎã³°¤Îɽ¤·Êý¤Ë¤Ï 2 ¤Ä¤ÎÊýË¡¤¬¤¢¤ë¡£ ¤Ò¤È¤Ä¤Ïñ°ì¤Î¥Ó¥Ã¥È (Îã³°¤¬Â¸ºß¤¹¤ë/¤·¤Ê¤¤) ¤Çɽ¤¹¤ä¤êÊý¤Ç¡¢ ¤³¤ì¤é¤Î¥Ó¥Ã¥È¤Ï¼ÂÁõ¤´¤È¤ÎÄêµÁ¤Ë¤è¤ê¡¢ ¥Ó¥Ã¥È°ÌÃÖ¤ËÂбþ¤¹¤ëÀ°¿ô¤Ë´ØÏ¢¤Å¤±¤é¤ì¤ë¡£ ¤â¤¦°ì¤Ä¤Î¤ä¤êÊý¤Ï¡¢È󯩲áŪ¤Ê¹½Â¤ÂΤÇɽ¤¹¤â¤Î¤Ç¡¢ ¤³¤ì¤Ë¤ÏÎã³°¤Ë´Ø¤¹¤ë¤è¤ê¿¤¯¤Î¾ðÊ󤬴ޤޤì¤ë (Î㤨¤ÐÎã³°¤¬µ¯¤³¤Ã¤¿¥³¡¼¥É¤Î¥¢¥É¥ì¥¹¤Ê¤É)¡£FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW, FE_UNDERFLOW ¤Î³Æ¥Þ¥¯¥í¤Ï¡¢¤½¤ì¤¾¤ìÂбþ¤¹¤ëÎã³°¤Î½èÍý¤ò ¼ÂÁõ¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¤ËÄêµÁ¤µ¤ì¤ë¡£ ¤³¤Î¤È¤Âбþ¤¹¤ë¥Ó¥Ã¥È¤ò¤½¤ì¤¾¤ìÄêµÁ¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤Î¤Ç¡¢ Îã³°½èÍý´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ò¡¢Î㤨¤Ð FE_OVERFLOW|FE_UNDERFLOW ¤È¤¤¤¦À°¿ô¤Î°ú¿ô¤òÍѤ¤¤Æ¹Ô¤¦¤³¤È¤¬¤Ç¤¤ë¡£ ¾¤ÎÎã³°¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ FE_ALL_EXCEPT ¥Þ¥¯¥í¤Ï¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÎã³°¤¹¤Ù¤Æ¤ËÂФ·¤Æ¡¢ ¥Ó¥Ã¥È¤´¤È¤Î OR ±é»»¤ò¼è¤Ã¤¿¤â¤Î¤Ë¤Ê¤ë¡£ feclearexcept ´Ø¿ô¤Ï¡¢°ú¿ô¤ÇÍ¿¤¨¤é¤ì¤¿¥Ó¥Ã¥È¤¬¼¨¤¹Îã³°¤Î¤¦¤Á¡¢ ¼ÂÁõ¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤â¤Î¤ò¥¯¥ê¥¢¤¹¤ë¡£ fegetexceptflag ´Ø¿ô¤Ï¡¢°ú¿ô excepts ¤¬¼¨¤¹Îã³°¥Õ¥é¥°¤Î¾õÂÖ¤Îɽ¸½¤ò *flagp ¤¬»Ø¤¹È󯩲áŪ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤ËÊݸ¤¹¤ë¡£ feraiseexcept ´Ø¿ô¤Ï¡¢ excepts ¤Î¥Ó¥Ã¥È¤¬¼¨¤¹Îã³°¤Î¤¦¤Á¡¢ ¼ÂÁõ¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤â¤Î¤òȯÀ¸¤µ¤»¤ë¡£ fesetexceptflag ´Ø¿ô¤Ï¡¢ *flagp ¤¬»Ø¤¹Ãͤò¡¢ excepts ¤¬É½¸½¤¹¤ë¡¢Îã³°¤Î´°Á´¤Ê¾õÂÖ¤ËÀßÄꤹ¤ë¡£ ¤³¤Î excepts ¤ÎÃͤϡ¢ ¤³¤ì°ÊÁ°¤Ë fegetexceptflag ´Ø¿ô¤ò (ºÇ¸å¤Î°ú¿ô¤Ë excepts ¤ÎÁ´¤Æ¤Î¥Ó¥Ã¥È¤ò´Þ¤à¤â¤Î¤òÍ¿¤¨¤Æ) ¸Æ¤Ó½Ð¤·¡¢ ¼èÆÀ¤µ¤ì¤¿Ãͤˤ¹¤Ù¤¤Ç¤¢¤ë¡£ fetestexcept ´Ø¿ô¤Ï word ¤òÊÖ¤¹¡£ ¤³¤Î word ¤Ç¤Ï¡¢ excepts °ú¿ô¤Ç¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¥Ó¥Ã¥È¤Î¤¦¤Á¡¢ ¤½¤ì¤ËÂбþ¤¹¤ëÎã³°¤¬¸½ºßÀßÄꤵ¤ì¤Æ¤¤¤ë¤â¤Î¤¬Î©¤Æ¤é¤ì¤ë¡£ ´Ý¤áFE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD ¤Î³Æ¥Þ¥¯¥í¤Ï¡¢¤½¤ì¤¾¤ìÂбþ¤¹¤ë´Ý¤á¤ÎÊý¸þ¤ò ¼ÂÁõ¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¤ËÄêµÁ¤µ¤ì¤ë¡£fegetround ´Ø¿ô¤Ï¸½ºß¤Î´Ý¤á¥â¡¼¥É¤ËÂбþ¤¹¤ë¥Þ¥¯¥í¤òÊÖ¤¹¡£ fesetround ´Ø¿ô¤Ï´Ý¤á¥â¡¼¥É¤ò°ú¿ô¤ËÍ¿¤¨¤é¤ì¤¿Ãͤˤ·¡¢ À®¸ù¤·¤¿¤é¥¼¥í¤òÊÖ¤¹¡£ ÉâÆ°¾®¿ôÅÀ´ØÏ¢¤Î´Ä¶ÉâÆ°¾®¿ôÅÀ´ØÏ¢¤Î´Ä¶¤ÎÁ´ÂΤϡ¢ À©¸æ¥â¡¼¥É¤ä¾õÂ֥ե饰¤â´Þ¤á¡¢ fenv_t ·¿¤ÎÈ󯩲áŪ¤Ê¥ª¥Ö¥¸¥§¥¯¥È°ì¤Ä¤Ç¼è¤ê°·¤¦¤³¤È¤¬¤Ç¤¤ë¡£ ¥Ç¥Õ¥©¥ë¥È¤Î´Ä¶¤Ï¡¢ (const fenv_t * ·¿¤Î) FE_DFL_ENV ¤Ç¼¨¤µ¤ì¤ë¤â¤Î¤Ç¤¢¤ë¡£fegetenv ´Ø¿ô¤Ï¡¢¸½ºß¤ÎÉâÆ°¾®¿ôÅÀ´Ä¶¤ò¡¢¥ª¥Ö¥¸¥§¥¯¥È *envp ¤ËÊݸ¤¹¤ë¡£ feholdexcept ´Ø¿ô¤âƱ¤¸Æ°ºî¤ò¹Ô¤¤¡¢¤µ¤é¤ËÁ´¤Æ¤ÎÎã³°¥Õ¥é¥°¤ò¥¯¥ê¥¢¤·¡¢ non-stop (Îã³°»þ¤Ë¤â¼Â¹Ô¤ò·Ñ³) ¥â¡¼¥É¤Ø¤ÎÀßÄ꤬²Äǽ¤Ê¤é¤Ð¤³¤ì¤ò¹Ô¤¦¡£ À®¸ù¤·¤¿¤é¥¼¥í¤òÊÖ¤¹¡£ fesetenv ´Ø¿ô¤Ï¡¢ÉâÆ°¾®¿ôÅÀ´Ä¶¤ò¡¢¥ª¥Ö¥¸¥§¥¯¥È *envp ¤«¤é¼è¤ê½Ð¤·¤¿ÃͤËÌ᤹¡£ ¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢Í¸ú¤Ç¤¢¤ë¤³¤È¤¬»öÁ°¤Ë¤ï¤«¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ Î㤨¤Ð¡¢ fegetenv ¤ä feholdexcept ¤ò¸Æ¤Ó½Ð¤·¤¿·ë²Ì¤Ç¤¢¤ë¤È¤«¡¢ FE_DFL_ENV ¤ËÅù¤·¤¤¤È¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¤³¤Î´Ø¿ô¤Î¸Æ½Ð¤·¤ÏÎã³°¤òȯÀ¸¤·¤Ê¤¤¡£ feupdateenv ´Ø¿ô¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È *envp ¤¬É½¸½¤¹¤ëÉâÆ°¾®¿ôÅÀ´Ä¶¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¡£ ¤¿¤À¤·¸½ºßΩ¤Ã¤Æ¤¤¤ëÎã³°¤Ï¥¯¥ê¥¢¤µ¤ì¤Ê¤¤¡£ ¤³¤Î´Ø¿ô¤ò¸Æ¤ó¤À¸å¤ËΩ¤Ã¤Æ¤¤¤ëÎã³°¤Ï¡¢ ²áµî¤Î¥»¥Ã¥È¤È *envp ¤È¤Î´Ö¤Ç¥Ó¥Ã¥È¤´¤È¤Î OR ¤ò¼è¤Ã¤¿¤â¤Î¤Ë¤Ê¤ë¡£ ¾åµ¤Î¤è¤¦¤Ë¡¢¥ª¥Ö¥¸¥§¥¯¥È *envp ¤Ï¡¢»öÁ°¤Ë͸ú¤Ç¤¢¤ë¤³¤È¤¬¤ï¤«¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ GNU ¤Î¾ÜºÙ²Äǽ¤Ê¾ì¹ç¤Ë¤Ï¡¢GNU C Library ¤Ï¥Þ¥¯¥í FE_NOMASK_ENV ¤òÄêµÁ¤¹¤ë¡£¤³¤ì¤Ï¤¹¤Ù¤Æ¤ÎÎã³°¤Ç¥È¥é¥Ã¥×¤¬À¸¤¸¤ë¤è¤¦¤Ê´Ä¶¤Îɽ¸½¤Ç¤¢¤ë¡£ ¤³¤Î¥Þ¥¯¥í¤Ï #ifdef ¤òÍѤ¤¤ì¤Ð¥Æ¥¹¥È¤Ç¤¤ë¡£¤³¤ì¤Ï _GNU_SOURCE ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤Ã¤ÆÄêµÁ¤µ¤ì¤ë¡£ C99 ɸ½à¤ÏÉâÆ°¾®¿ôÅÀ¥Þ¥¹¥¯ (Î㤨¤ÐÆÃÄê¤Î¥Õ¥é¥°¤Ç¤Î¥È¥é¥Ã¥×¤Ê¤É) ¤Î³Æ¥Ó¥Ã¥È¤ÎÀßÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤ÏÄêµÁ¤·¤Æ¤¤¤Ê¤¤¡£ glibc 2.2 ¤Ï feenableexcept ´Ø¿ô¤È fedisableexcept ´Ø¿ô¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢ ³Æ¡¹¤ÎÉâÆ°¾®¿ôÅÀ¥È¥é¥Ã¥×¤òÀßÄê¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ ¤Þ¤¿ fegetexcept ¤Ë¤è¤Ã¤Æ¾õÂÖ¤ÎÌä¹ç¤ï¤»¤â¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
int feenableexcept (int excepts); feenebleexcept ´Ø¿ô¤È fedisableexcept ´Ø¿ô¤Ï excepts ¤Ë¤è¤Ã¤ÆÉ½¸½¤µ¤ì¤ë³ÆÎã³°¤Î¥È¥é¥Ã¥×¤ò͸ú (̵¸ú) ¤Ë¤¹¤ë¡£ À®¸ù¤·¤¿¾ì¹ç¤ÏľÁ°¤Ë͸ú¤Ë¤Ê¤Ã¤Æ¤¤¤¿Îã³°¤Î¥»¥Ã¥È¤òÊÖ¤¹¡£ ¼ºÇÔ¤·¤¿¾ì¹ç¤Ï -1 ¤òÊÖ¤¹¡£ fegetexcept ´Ø¿ô¤Ï¸½ºß͸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëÎã³°Á´¤Æ¤«¤é¤Ê¤ë¥»¥Ã¥È¤òÊÖ¤¹¡£ ½àµòIEC 60559 (IEC 559:1989), ANSI/IEEE 854, ISO C99 (ISO/IEC 9899:1999).
Index | ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "Linuxinfor Man Pages in HTML Format: man3". See Index Page for more info about Authorship and Copyright. 1999-2008 Linuxinfor.com. No rights reserved. |