fesetenv

Sets the current floating-point environment.

Syntax

int fesetenv(
   const fenv_t *penv
);

Parameters

penv
Pointer to a fenv_t object that contains a floating-point environment as set by a call to fegetenv or feholdexcept. You can also specify the default startup floating-point environment by using the FE_DFL_ENV macro.

Return value

Returns 0 if the environment was successfully set. Otherwise, it returns a nonzero value.

Remarks

The fesetenv function sets the current floating-point environment from the value stored in the fenv_t object pointed to by penv. The floating point environment is the set of status flags and control modes that affect floating-point calculations. The environment includes the rounding mode and the status flags for floating-point exceptions. If penv isn't FE_DFL_ENV or doesn't point to a valid fenv_t object, subsequent behavior is undefined.

A call to this function sets the exception status flags that are in the penv object, but it doesn't raise those exceptions.

To use this function, you must turn off floating-point optimizations that could prevent access by using the #pragma fenv_access(on) directive prior to the call. For more information, see fenv_access.

Requirements

Function C header C++ header
fesetenv <fenv.h> <cfenv>

For more compatibility information, see Compatibility.

See also

Alphabetical function reference
fegetenv
feclearexcept
feholdexcept
fesetexceptflag