Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


FECLEAREXCEPT(3)           Library Functions Manual           FECLEAREXCEPT(3)

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

LIBRARY
     Math Library (libm, -lm)

SYNOPSIS
     #include <fenv.h>

     #pragma STDC FENV_ACCESS ON

     int
     feclearexcept(int excepts);

     int
     fegetexceptflag(fexcept_t *flagp, int excepts);

     int
     feraiseexcept(int excepts);

     int
     fesetexceptflag(const fexcept_t *flagp, int excepts);

     int
     fetestexcept(int excepts);

DESCRIPTION
     The feclearexcept() routine clears the floating-point exception flags
     specified by excepts, whereas feraiseexcept() raises the specified
     exceptions.  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.
     Similarly, 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.

IMPLEMENTATION NOTES
     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
     restoring exception flags.  The latter do not re-raise exceptions and may
     preserve architecture-specific information such as addresses where
     exceptions occurred.

RETURN VALUES
     The feclearexcept(), fegetexceptflag(), feraiseexcept(), and
     fesetexceptflag() functions return 0 upon success, and non-zero
     otherwise.  The fetestexcept() function returns the bitwise OR of the
     values of the current exception flags that were requested.

SEE ALSO
     sigaction(2), feholdexcept(3), fenv(3), feupdateenv(3), fpgetsticky(3)

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

HISTORY
     These functions first appeared in FreeBSD 5.3 and NetBSD 6.0.

NetBSD 10.99                      May 8, 2004                     NetBSD 10.99