FreeBSD 7.0 manual page repository

FreeBSD is a free computer operating system based on BSD UNIX originally. Many IT companies, like DeployIS is using it to provide an up-to-date, stable operating system.

feclearexcept, fegetexceptflag, feraiseexcept, fesetexceptflag,



      feclearexcept, fegetexceptflag, feraiseexcept, fesetexceptflag,
      fetestexcept - floating-point exception flag manipulation


      Math Library (libm, -lm)


      #include <fenv.h>
      #pragma STDC FENV_ACCESS ON
      feclearexcept(int excepts);
      fegetexceptflag(fexcept_t *flagp, int excepts);
      feraiseexcept(int excepts);
      fesetexceptflag(const fexcept_t *flagp, int excepts);
      fetestexcept(int excepts);


      The feclearexcept() routine clears the floating-point exception flags
      specified by excepts, whereas feraiseexcept() raises the specified excep‐
      tions.  Raising an exception causes the corresponding flag to be set, and
      a SIGFPE is delivered to the process if the exception is unmasked.
      The fetestexcept() function determines which flags are currently set, of
      those specified by excepts.
      The fegetexceptflag() function stores the state of the exception flags
      specified in excepts in the opaque object pointed to by flagp.  Simi‐
      larly, fesetexceptflag() changes the specified exception flags to reflect
      the state stored in the object pointed to by flagp.  Note that the flags
      restored with fesetexceptflag() must be a (not necessarily proper) subset
      of the flags recorded by a prior call to fegetexceptflag().
      For all of these functions, the possible types of exceptions include
      those described in fenv(3).  Some architectures may define other types of
      floating-point exceptions.
      On some architectures, raising an overflow or underflow exception also
      causes an inexact exception to be raised.  In these cases, the overflow
      or underflow will be raised first.
      The fegetexceptflag() and fesetexceptflag() routines are preferred to
      fetestexcept() and feraiseexcept(), respectively, for saving and restor‐
      ing exception flags.  The latter do not re-raise exceptions and may pre‐
      serve architecture-specific information such as addresses where excep‐
      tions occurred.
      The feclearexcept(), fegetexceptflag(), feraiseexcept(), and
      fesetexceptflag() functions return 0 upon success, and non-zero other‐
      wise.  The fetestexcept() function returns the bitwise OR of the values
      of the current exception flags that were requested.
      sigaction(2), feholdexcept(3), fenv(3), feupdateenv(3), fpgetsticky(3),


      The feclearexcept(), fegetexceptflag(), feraiseexcept(),
      fesetexceptflag(), and fetestexcept() routines conform to ISO/IEC
      9899:1999 (“ISO C99”).


      These functions first appeared in FreeBSD 5.3.


Based on BSD UNIX
FreeBSD is an advanced operating system for x86 compatible (including Pentium and Athlon), amd64 compatible (including Opteron, Athlon64, and EM64T), UltraSPARC, IA-64, PC-98 and ARM architectures. It is derived from BSD, the version of UNIX developed at the University of California, Berkeley. It is developed and maintained by a large team of individuals. Additional platforms are in various stages of development.