_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++ |
|---|---|---|---|
|
+ |