DragonFly On-Line Manual Pages
FECLEAREXCEPT(3) DragonFly Library Functions Manual FECLEAREXCEPT(3)
feclearexcept, fegetexceptflag, feraiseexcept, fesetexceptflag,
fetestexcept -- access floating-point status flags
fegetexceptflag(fexcept_t *flagp, int excepts);
fesetexceptflag(const fexcept_t *flagp, int excepts);
These functions provide access to the floating-point status flags. The
excepts input argument is a bitmask specifying an exception type and con-
taining any of the values listed below.
FE_DIVBYZERO A divide-by-zero exception occurs when the program attempts
to divide a finite non-zero number by zero.
FE_INEXACT An inexact exception is raised whenever there is a loss of
precision due to rounding.
FE_INVALID Invalid operation exceptions occur when a program attempts
to perform calculations for which there is no reasonable
For instance, subtraction of infinities, division of zero
by zero, ordered comparison involving NaNs, and taking the
square root of a negative number are all invalid opera-
FE_OVERFLOW An overflow exception occurs when the magnitude of the
result of a computation is too large to fit in the destina-
FE_UNDERFLOW Underflow occurs when the result of a computation is too
close to zero to be represented as a non-zero value in the
FE_DENORMAL Denormalization exception occurs when the result of a
floating-point expression is a denormalized number.
This is available only on the floating-point implementa-
tions of amd64 and i386 processors.
Additionally, the macro FE_ALL_EXCEPT is simply the bitwise OR of all
floating-point exception macros listed above.
The feclearexcept() function clears the floating-point exceptions repre-
sented by excepts.
The fegetexceptflag() function stores a representation of the states of
the floating-point flags indicated by excepts in the object pointed to by
The feraiseexcept() function raises floating-point exceptions represented
The fesetexceptflag() function sets the floating-point status flags indi-
cated by excepts to the states stored in the object pointed to by flagp.
The value of flagp shall have been set by a previous call to
fegetexceptflag() whose second argument represented at least those float-
ing-point exceptions represented by excepts. This function does not
raise floating-point exceptions, but only sets the state of the flags.
The fetesteexcept() function determines which of a specified subset of
the floating-point exception flags are currently set. The excepts speci-
fies the floating-point status flags to be queried.
The feclearexcept(), fegetexceptflag(), feraiseexcept(), and
fesetexceptflag() functions return zero on success, and non-zero if an
error occurred. The fetestexcept() function returns a bitmask of a spec-
ified subset of the floating-point exception flags which are currently
feenableexcept(3), fegetenv(3), fegetround(3)
The feclearexcept(), fegetexceptflag(), feraiseexcept(),
fesetexceptflag(), and fetestexcept() functions conform to ISO/IEC
9899:1999 (``ISO C99'').
The return types for feclearexcept(), fegetexceptflag(), feraiseexcept(),
and fesetexceptflag() are int for alignment with ISO/IEC 9899:1999
(``ISO C99'') Defect Report #202.
These functions first appeared in OpenBSD 5.0.
On some architectures, feraiseexcept() additionally raises the
``inexact'' floating-point exception whenever it raises the ``overflow''
or ``underflow'' floating-point exception.
DragonFly 4.7 June 5, 2013 DragonFly 4.7