fp_exception_value()
Get the value of the current exception registers
Synopsis:
#include <fpstatus.h>
int fp_exception_value( int mask );
Arguments:
- mask
- A mask whose bits indicate which registers you want the value of.
The bits include:
- _FP_EXC_INVALID
- _FP_EXC_DIVZERO
- _FP_EXC_OVERFLOW
- _FP_EXC_UNDERFLOW
- _FP_EXC_INEXACT
- _FP_EXC_DENORMAL
Library:
libm
Use the -l m option to qcc to link against this library.
Description:
The fp_exception_value() function gets the value of the current exception registers. Set bits indicate that the exception has signaled, unset bits indicate that the exception hasn't signaled.
Returns:
The value of the current exception registers based on the values from <fpstatus.h>.
This function doesn't return a special value to indicate that an error
occurred.
If you want to check for errors, set
errno
to 0, call the function, and then check errno again.
Examples:
#include <fpstatus.h> int main(int argc, char** argv) { int ret; /* Test to see if an operation has set (but not necessarily * signaled depending on the exception mask) the * division by zero bit: */ if (fp_exception_value(_FP_EXC_DIVZERO) & _FP_EXC_DIVZERO) printf("Division by zero has occurred \n"); else printf("Division by zero has not occurred \n"); return(0); }
Classification:
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |