SIGFPE

SIGFPE
Beskrivelse Fejlagtig aritmetisk operation
Standard ende med et hukommelsesdump
SA_SIGINFO Koder
FPE_INTDIV Heltals division med nul
FPE_INTOVF heltalsoverløb
FPE_FLTDIV Division med nul flydende komma
FPE_FLTOVF flydende komma overløb
FPE_FLTUND Flydende komma overløb
FPE_FLTRES Flydende punkts præcisionsfejl
FPE_FLTINV Ugyldig Floating point operation
FPE_FLTSUB Ud over indeks

POSIX - systemer er SIGFPE  et signal, der sendes til en proces, når den forsøger at udføre en fejlagtig aritmetisk operation.

SIGFPE er en heltalskonstant defineret i signal.h. De symbolske navne på signalerne bruges i stedet for numrene, da numrene på signalerne kan være forskellige i forskellige implementeringer.

Etymologi

SIG  - fælles præfiks , signaler, FPE  - forkortelse af engelsk.  floating-point-undtagelse  - en undtagelse i en floating-point-operation. Faktisk bruges SIGFPE også til heltalsaritmetik, men navnet bibeholdes for baglæns kodekompatibilitet .

Brug

En SIGFPE kan sendes til en proces af en række årsager. Den mest almindelige af disse er datatypeoverløb som følge af uventet store (eller små) inputværdier og/eller en programdesignfejl.

SIGFPE kan blive opsnappet eller ignoreret. Ignorering af SIGFPE kan i nogle tilfælde føre til uforudsigelige resultater - programmet kan loope i et forsøg på at udføre en fejlagtig handling. Hvis SIGFPE ikke er resultatet af en aritmetisk operation (men f.eks. sendt ved hjælp af et systemkald kill() ), så er en sådan ignorering ganske sikker.

Ved division kalder SIGFPE ikke kun en nuldivisor - på nogle platforme (inklusive x86), kan heltalsdeling af INT_MIN, det mindste (negative) heltal, med (−1) ikke udføres, da et positivt tal med dette modul ikke kan repræsenteres (med INT_MIN = (−2147483648), INT_MAX = 2147483647).

Se også