_fpreset
float.h:インデックス への移動
ヘッダーファイル
float.h
カテゴリ
演算ルーチン
プロトタイプ
void _fpreset(void);
説明
浮動小数点演算パッケージを再初期化します。
_fpreset は,浮動小数点演算パッケージを再初期化します。通常,この関数は,system 関数,exec... 系関数,または spawn... 系関数と組み合わせて使用されます。また,longjmp を呼び出す前に浮動小数点エラーから回復するためにも使用されます。
メモ: 80x87 コプロセッサがプログラムで使用される場合は,子プロセス(system 関数,exec... 系関数,または spawn... 系関数によって実行される)が親プロセスの浮動小数点状態を変更することがあります。
- 80x87 を使用する場合は,次の点に注意します。
- 浮動小数点式の評価中に,system 関数,exec... 系関数,または spawn... 系関数を呼び出さないようにします。
子プロセスが 80x87 で浮動小数点操作を行った可能性がある場合は,system 関数,exec... 系関数,または spawn... 系関数を使用した後で _fpreset を呼び出して,浮動小数点状態をリセットします。
戻り値
なし。
コード例
#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;
}
移植性
| POSIX | Win32 | ANSI C | ANSI C++ |
|---|---|---|---|
|
+ |