_fpreset

Aus RAD Studio
Wechseln zu: Navigation, Suche

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

+