Windows PowerShell command on Get-command sigfpe
MyWebUniversity

Manual Pages for UNIX Operating System command usage for man sigfpe

Standard C Library Functions sigfpe(3C)

NAME

sigfpe - signal handling for specific SIGFPE codes

SYNOPSIS

#include

#include

sigfpe_handler_type sigfpe(sigfpe_code_type code,

sigfpe_handler_type hdl);

DESCRIPTION

The sigfpe() function allows signal handling to be specified

for particular SIGFPE codes. A call to sigfpe() defines a

new handler hdl for a particular SIGFPE code and returns the

old handler as the value of the function sigfpe(). Normally

handlers are specified as pointers to functions; the special

cases SIGFPE_IGNORE, SIGFPE_ABORT, and SIGFPE_DEFAULT allow

ignoring, dumping core using abort(3C), or default handling respectively. Default handling is to dump core using abort(3C).

The code argument is usually one of the five IEEE754-related

SIGFPE codes:

FPE_FLTRES fp_inexact - floating-point inexact result

FPE_FLTDIV fp_division - floating-point division by zero

FPE_FLTUND fp_underflow - floating-point underflow

FPE_FLTOVF fp_overflow - floating-point overflow

FPE_FLTINV fp_invalid - floating-point invalid operation

Three steps are required to intercept an IEEE754-related

SIGFPE code with sigfpe():

1. Set up a handler with sigfpe().

2. Enable the relevant IEEE754 trapping capability in

the hardware, perhaps by using assembly-language

instructions.

3. Perform a floating-point operation that generates

the intended IEEE754 exception.

The sigfpe() function never changes floating-point hardware

mode bits affecting IEEE754 trapping. No IEEE754-related

SIGFPE signals will be generated unless those hardware mode bits are enabled.

SunOS 5.11 Last change: 4 May 2004 1

Standard C Library Functions sigfpe(3C)

SIGFPE signals can be handled using sigfpe(), sigaction(2)

or signal(3C). In a particular program, to avoid confusion, use only one of these interfaces to handle SIGFPE signals.

EXAMPLES

Example 1 Example Of A User-Specified Signal Handler

A user-specified signal handler might look like this:

#include

#include

#include

/*

* The sample_handler prints out a message then commits suicide.

*/ void

sample_handler(int sig, siginfo_t *sip, ucontext_t *uap) {

char *label;

switch (sip->si_code) {

case FPE_FLTINV: label = "invalid operand"; break;

case FPE_FLTRES: label = "inexact"; break;

case FPE_FLTDIV: label = "division-by-zero"; break;

case FPE_FLTUND: label = "underflow"; break;

case FPE_FLTOVF: label = "overflow"; break;

default: label = "???"; break; } fprintf(stderr,

"FP exception %s (0x%x) occurred at address %p.\n",

label, sip->si_code, (void *) sip->si_addr);

abort(); } and it might be set up like this:

#include

#include

#include

extern void sample_handler(int, siginfo_t *, ucontext_t *);

main(void) {

sigfpe_handler_type hdl, old_handler1, old_handler2;

/*

* save current fp_overflow and fp_invalid handlers; set the new

* fp_overflow handler to sample_handler() and set the new

* fp_invalid handler to SIGFPE_ABORT (abort on invalid)

*/

hdl = (sigfpe_handler_type) sample_handler;

old_handler1 = sigfpe(FPE_FLTOVF, hdl);

SunOS 5.11 Last change: 4 May 2004 2

Standard C Library Functions sigfpe(3C)

old_handler2 = sigfpe(FPE_FLTINV, SIGFPE_ABORT);

... /*

* restore old fp_overflow and fp_invalid handlers

*/

sigfpe(FPE_FLTOVF, old_handler1);

sigfpe(FPE_FLTINV, old_handler2);

} FILES /usr/include/floatingpoint.h /usr/include/siginfo.h

ATTRIBUTES

See attributes(5) for descriptions of the following attri-

butes:

____________________________________________________________

| ATTRIBUTE TYPE | ATTRIBUTE VALUE |

|_____________________________|_____________________________|

| MT-Level | Safe |

|_____________________________|_____________________________|

SEE ALSO

sigaction(2), abort(3C), signal(3C), attributes(5), floatingpoint.h(3HEAD) DIAGNOSTICS

The sigfpe() function returns (void(*)())-1 if code is not

zero or a defined SIGFPE code.

SunOS 5.11 Last change: 4 May 2004 3




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™