Get or set the current exception mask
#include <fpstatus.h> int fp_exception_mask ( int new_mask, int set );
The fp_exception_mask() function gets or sets the current exception mask, depending on the value of the set argument.
#include <fpstatus.h> int main(int argc, char** argv) { int ret; if ((ret = fp_exception_mask(0, -1)) < 0) printf("*** Problem retrieving exceptions \n"); printf("Exceptions Enabled: \n\t"); if (ret & _FP_EXC_INEXACT) printf("Inexact "); if (ret & _FP_EXC_DIVZERO) printf("DivZero "); if (ret & _FP_EXC_UNDERFLOW) printf("Underflow "); if (ret & _FP_EXC_OVERFLOW) printf("Overflow "); if (ret & _FP_EXC_INVALID) printf("Invalid "); printf("\n"); /* Set the exception mask to enable division by zero errors */ if ((ret = fp_exception_mask(_FP_EXC_DIVZERO, 1)) < 0) printf("*** Problem setting exceptions \n"); if ((ret = fp_exception_mask(0, -1)) < 0) printf("*** Problem retrieving exceptions \n"); printf("Exceptions Enabled: \n\t"); if (ret & _FP_EXC_INEXACT) printf("Inexact "); if (ret & _FP_EXC_DIVZERO) printf("DivZero "); if (ret & _FP_EXC_UNDERFLOW) printf("Underflow "); if (ret & _FP_EXC_OVERFLOW) printf("Overflow "); if (ret & _FP_EXC_INVALID) printf("Invalid "); printf("\n"); return(0); }
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |