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 |
På 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.
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 .
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).
POSIX- signaler | |||
---|---|---|---|
| |||
|