fegetenvfeholdexceptfesetenvfeupdateenv
- floating-point environment save and restore
LIBRARY
Lb libm
SYNOPSIS
#include <fenv.h>
Fd #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
Fa 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.