Updated: 2022/Sep/29

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


FEGETENV(3)                Library Functions Manual                FEGETENV(3)

NAME
     fegetenv, feholdexcept, fesetenv, feupdateenv - floating-point
     environment save and restore

LIBRARY
     Math Library (libm, -lm)

SYNOPSIS
     #include <fenv.h>

     #pragma STDC FENV_ACCESS ON

     int
     fegetenv(fenv_t *envp);

     int
     feholdexcept(fenv_t *envp);

     int
     fesetenv(const fenv_t *envp);

     int
     feupdateenv(const fenv_t *envp);

DESCRIPTION
     The floating-point environment includes exception flags and masks, the
     current rounding mode, and other architecture-specific settings.
     However, it does not include the floating-point register file.

     The fegetenv() function stores the current floating-point environment in
     the object pointed to by envp, whereas feholdexcept() saves the current
     environment, then clears all exception flags and masks all floating-point
     exceptions.

     The fesetenv() function restores a previously saved environment.  The
     feupdateenv() function restores a saved environment as well, but it also
     raises any exceptions that were set in the environment it replaces.

     The feholdexcept() function is often used with feupdateenv() or
     fesetenv() to suppress spurious exceptions that occur as a result of
     intermediate computations.  An example in fenv(3) demonstrates how to do
     this.

RETURN VALUES
     The fegetenv(), feholdexcept(), fesetenv(), and feupdateenv() functions
     return 0 if they succeed, and non-zero otherwise.

SEE ALSO
     feclearexcept(3), fenv(3), feraiseexcept(3), fesetenv(3),
     fetestexcept(3), fpgetmask(3), fpsetmask(3)

STANDARDS
     The fegetenv(), feholdexcept(), fesetenv(), and feupdateenv() functions
     conform to ISO/IEC 9899:1999 ("ISO C99").

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

NetBSD 10.99                      May 8, 2004                     NetBSD 10.99