NAME
fegetenv,
feholdexcept, fesetenv,
feupdateenv —
manage floating-point
environment
SYNOPSIS
#include
<fenv.h>
int
fegetenv(fenv_t
*envp);
int
feholdexcept(fenv_t
*envp);
int
fesetenv(const
fenv_t *envp);
int
feupdateenv(const
fenv_t *envp);
DESCRIPTION
These functions manage the floating-point environment -- status flags, rounding direction modes and exception masks -- as one entity. The envp input argument is an object representing the floating-point environment. The macroFE_DFL_ENV
represents the default floating-point environment -- the one installed at
program startup.
The
fegetenv()
function stores the current floating-point environment in the object pointed
to by envp.
The
feholdexcept()
function saves the current floating-point environment in the object pointed
to by envp, clears the floating-point status flags,
and then installs a non-stop (continue on floating-point exceptions) mode
for all floating-point exceptions.
The
fesetenv()
function establishes the floating-point environment represented by the
object pointed to by envp. The argument
envp shall point to an object set by a call to
fegetenv() or
feholdexcept(), or equal the macro
FE_DFL_ENV. Note that
fesetenv() merely installs the state of the
floating-point status flags represented through its argument, and does not
raise these floating-point exceptions.
The
feupdateenv()
function saves the currently raised floating-point exceptions in its
automatic storage, installs the floating-point environment represented by
the object pointed to by envp, and then raises the
saved floating-point exceptions. The argument envp
shall point to an object set by a call to
feholdexcept() or
fegetenv(), or equal the macro
FE_DFL_ENV.
RETURN VALUES
The fegetenv(),
feholdexcept(), fesetenv(),
and feupdateenv() functions return zero on success,
and non-zero if an error occurred.
SEE ALSO
STANDARDS
The fegetenv(),
feholdexcept(), fesetenv(),
and feupdateenv() functions conform to
ISO/IEC 9899:1999
(“ISO C99”).
The return types for fegetenv(),
fesetenv(), and
feupdateenv() are int for
alignment with ISO/IEC 9899:1999
(“ISO C99”) Defect Report #202.