_fpreset
Nach oben zu float.h - Index
Header-Datei
float.h
Kategorie
Mathematische Routinen
Prototyp
void _fpreset(void);
Beschreibung
Initialisiert die mathematische Gleitkommabibliothek neu.
_fpreset initialisiert die mathematische Gleitkommabibliothek neu. Diese Funktion wird gewöhnlich in Verbindung mit Systemfunktionen oder den exec...- oder spawn...-Funktionen verwendet. Sie wird auch verwendet, um Gleitkommafehler zu beheben, bevor longjmp aufgerufen wird.
Anmerkung: Wenn ein 80x87-Coprozessor in einem Programm eingesetzt wird, kann ein untergeordneter Prozess (der vom System oder von einer exec...- oder spawn...-Funktion ausgeführt wird) den Gleitkommastatus des übergeordneten Prozesses ändern.
- Wenn Sie einen 80x87-Coprozessor verwenden, treffen Sie folgende Vorsichtsmaßnahmen:
- Rufen Sie keine System- oder exec...- oder spawn...-Funktion auf, während ein Gleitkommaausdruck ausgewertet wird.
Rufen Sie nach dem Aufruf einer System-, exec...- oder spawn...-Funktion die Funktion _fpreset auf, um den Gleitkommastatus zurückzusetzen, wenn die Möglichkeit besteht, dass der untergeordnete Prozess eine Gleitkommaoperation mit dem 80x87-Coprozessor ausgeführt hat.
Rückgabewert
Keiner.
Beispiel
#include <process.h> #include <float.h> #include <stdio.h> int safe_fpu_exec(wchar_t* program) { /* Spawn another process with NOWAIT flag */ int pid = _wspawnl(P_NOWAIT, program, NULL); int exitCode; /* Check for error */ if (pid == -1) return -1; /* Wait for the application to finish */ cwait(&exitCode, pid, 0); /* Reset the FPU state since the child process might have altered it */ _fpreset(); return exitCode; }
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |