EN JA
FEGETENV(3)
FEGETENV(3) FreeBSD Library Functions Manual FEGETENV(3)

名称

fegetenv, feholdexcept, fesetenv, feupdateenv浮動小数点の環境を保存して復旧する

ライブラリ

Math Library (libm, -lm)

書式

#include < fenv.h>

#pragma STDC FENV_ACCESS ON

int
fegetenv( fenv_t *envp);

int
feholdexcept( fenv_t *envp);

int
fesetenv( const fenv_t *envp);

int
feupdateenv( const fenv_t *envp);

解説

浮動小数点の環境は、例外フラグとマスク、現在の丸めモードと、他のアーキテクチャ特有の設定を含んでいます。しかしながら、それは、浮動小数点レジスタファイルを含んでいません。

fegetenv() 関数は、 envp によって指されたオブジェクトに現在の浮動小数点の環境を格納するのに体して、 feholdexcept() は、現在の環境を保存して、次に、すべての例外フラグをクリーンにし、すべての浮動小数点の例外をマスクします。

fesetenv() 関数は、以前に保存された環境を復旧します。 feupdateenv() 関数は、同じように保存された環境を復旧しますが、それが置き換えられた環境で設定されたどんな例外も上げます。

feholdexcept() 関数は、中間的計算の結果として生じる偽りの例外を抑圧するために feupdateenv() または fesetenv() でしばしば使用されます。 fenv(3) の例は、どのようにこれを行うかの実例です。

戻り値

fegetenv(), feholdexcept(), fesetenv() と feupdateenv() 関数は、それらが成功するなら、0 を、そうでなければ、0 以外を返します。

規格

fegetenv(), feholdexcept(), fesetenv() と feupdateenv() 関数は、 ISO/IEC 9899:1999 (“ISO C99”) に適合しています。

歴史

これらのルーチンは、 FreeBSD 5.3 ではじめて登場しました。
May 8, 2004 FreeBSD