FEENABLEEXCEPT(3) | FreeBSD Library Functions Manual | FEENABLEEXCEPT(3) |
名称
feenableexcept, fedisableexcept, fegetexcept — 浮動小数点の例外マスクライブラリ
Math Library (libm, -lm)書式
#include < fenv.h>#pragma STDC FENV_ACCESS ON
int
feenableexcept( int excepts);
int
fedisableexcept( int excepts);
int
fegetexcept( void);
解説
feenableexcept() と fedisableexcept() 関数は、 excepts で指定された例外 (exception) を (それぞれ) アンマスクして、マスクします。 fegetexcept() 関数は、現在の例外マスクを返します。すべての例外は、デフォルトでマスクされています。アンマスクされた例外を生成する浮動小数点操作は、トラップされ、 SIGFPE がプロセスに配信されます。 SIGFPE のためのシブナルハンドラをインストールすることによって、アプリケーションは、あらゆる操作の後に例外フラグをテストしないで、直ちに適切なアクション (行動) を取ることができます。トラップが直ちにではありませんが、次の浮動小数点命令が実行される前に、それが起こるはずであることに注意してください。
これらの関数のすべてに関しては、例外のあり得るタイプは、 fenv(3) で説明されたものを含んでいます。いくつかのアーキテクチャは、他のタイプの浮動小数点の例外を定義するかもしれません。
戻り値
feenableexcept(), fedisableexcept() と fegetexcept() 関数は、呼び出しの前のアンマスクされた例外のビットマップを返します。バグ
標準のライブラリの関数は、中間的計算の結果として複数回の例外の引き金となるかもしれません。しかしながら、一般的に、それらは、偽りの例外の引き金となりません。インタフェースは、重要な方法で取り扱われる許可された例外を提供しません。例外を引き起こす命令に関する情報にアクセスするか、またはハンドラから返った後にその命令が再実行されるべきであるかどうか決定する例外ハンドラのための一定の方法はありません。
March 16, 2005 | FreeBSD |