United States-English |
|
|
HP-UX Reference > Ffetestexcept(3M)HP-UX 11i Version 3: February 2007 |
|
NAMEfetestexcept() — test floating-point exceptions DESCRIPTIONThe fetestexcept() function determines which of a specified subset of the floating-point exception flags are currently set. The excepts argument specifies the floating-point exception flags to be queried. The argument can be constructed as a bitwise OR of the exception macros: FE_INEXACT, FE_DIVBYZERO, FE_UNDERFLOW, FE_OVERFLOW, and FE_INVALID. FE_ALL_EXCEPT represents all the floating-point exceptions. USAGETo use this function, compile either with the default -Ae option or with the -Aa and -D_HPUX_SOURCE options. Make sure your program includes <fenv.h>. For HP Integrity servers, specify +Ofenvaccess on the compiler command line or place the call to this function under the effect of an affirmative FENV_ACCESS pragma: #pragma STDC FENV_ACCESS ON If the FENV_ACCESS pragma is placed outside of any top-level declarations in a file, the pragma will apply to all declarations in the compilation following the pragma until another FENV_ACCESS pragma is encountered or until the end of the file is reached. If the FENV_ACCESS pragma is placed at the beginning of a block (compound statement), the pragma will apply until another FENV_ACCESS pragma is encountered or until the end of the block is reached. For PA-RISC, you might need to use the +Onomoveflops compiler option in order to prevent optimizations that can undermine the specified behavior of this function. Link in the math library by specifying -lm on the compiler or linker command line. For more information, see the HP-UX floating-point guide for HP Integrity servers at the following site: http://www.hp.com/go/fp. RETURN VALUEThe fetestexcept() function returns the bitwise OR of the exception macros corresponding to the currently set floating-point exceptions included in excepts. EXAMPLESCall f() if invalid is set, then g() if overflow is set: #include <fenv.h> /*...*/ int set_excepts; /* operations that may raise exceptions */ set_excepts = fetestexcept(FE_INVALID | FE_OVERFLOW); if (set_excepts & FE_INVALID) f(); if (set_excepts & FE_OVERFLOW) g(); |
Printable version | ||
|