Share via


feholdexcept

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at feholdexcept2.

Saves the current floating-point environment in the specified object, clears the floating-point status flags, and, if possible, puts the floating-point environment into non-stop mode.

Syntax

int feholdexcept(  
   fenv_t *penv  
);  
  

Parameters

penv
Pointer to an fenv_t object to contain a copy of the floating-point environment.

Return Value

Returns zero if and only if the function is able to successfully turn on non-stop floating-point exception handling.

Remarks

The feholdexcept function is used to store the state of the current floating point environment in the fenv_t object pointed to by penv, and to set the environment to not interrupt execution on floating-point exceptions. This is known as non-stop mode. This mode continues until the environment is restored using fesetenv or feupdateenv.

You can use this function at the beginning of a subroutine that needs to hide one or more floating-point exceptions from the caller. To report an exception, you can simply clear the unwanted exceptions by using feclearexcept, and then end the non-stop mode with a call to feupdateenv.

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
feholdexcept <fenv.h> <cfenv>

For additional compatibility information, see Compatibility.

See Also

Alphabetical Function Reference
feclearexcept
fesetenv
feupdateenv