Home :: International :: Manuals :: Howto :: FAQ :: Man Pages :: Email Login

 
 

 

FENV

Section: 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);

void fegetexceptflag(fexcept_t *flagp, int excepts);
void feraiseexcept(int excepts);
void fesetexceptflag(const fexcept_t *flagp, int excepts);
int fetestexcept(int excepts); int fegetround(void);
int fesetround(int rounding_mode); void fegetenv(fenv_t *envp);
int feholdexcept(fenv_t *envp);
void fesetenv(const fenv_t *envp);
void feupdateenv(const fenv_t *envp);
 

ÀâÌÀ

¤³¤ì¤é¤Î 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);

int fedisableexcept (int excepts);
int fegetexcept (void);

feenebleexcept ´Ø¿ô¤È fedisableexcept ´Ø¿ô¤Ï excepts ¤Ë¤è¤Ã¤ÆÉ½¸½¤µ¤ì¤ë³ÆÎã³°¤Î¥È¥é¥Ã¥×¤òÍ­¸ú (̵¸ú) ¤Ë¤¹¤ë¡£ À®¸ù¤·¤¿¾ì¹ç¤ÏľÁ°¤ËÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤¿Îã³°¤Î¥»¥Ã¥È¤òÊÖ¤¹¡£ ¼ºÇÔ¤·¤¿¾ì¹ç¤Ï -1 ¤òÊÖ¤¹¡£ fegetexcept ´Ø¿ô¤Ï¸½ºßÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëÎã³°Á´¤Æ¤«¤é¤Ê¤ë¥»¥Ã¥È¤òÊÖ¤¹¡£  

½àµò

IEC 60559 (IEC 559:1989), ANSI/IEEE 854, ISO C99 (ISO/IEC 9899:1999).


 

Index

̾Á°
½ñ¼°
ÀâÌÀ
Îã³°
Îã³°½èÍý
´Ý¤á
ÉâÆ°¾®¿ôÅÀ´ØÏ¢¤Î´Ä¶­
GNU ¤Î¾ÜºÙ
½àµò

 
 
 
 
Google
  Web Linuxinfor   
 

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.