[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 07/17 20:33 / Filesize : 27 KB / Number-of Response : 167
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

科学技術計算



128 名前:デフォルトの名無しさん [2006/06/13(火) 17:10:39 ]
fenv.hまわりの関数の使いかたが分からないので質問させてください.
環境はLinux 2.6.11,gcc 3.3.5,glibc 2.3.2です.

NaNの発生を検出しようと思いまして以下のようなコードを書きました.
例外が発生したところでfpe_handlerを1回呼んで復帰してほしいのですが,
以下のコードではfpe_handlerが何度も呼ばれるようでhogeが無数に表示されます.
例外フラグをクリアする必要があるのかなと思いまして(A)を追加しましたが動作は変わりません.
恐らく根本的に使い方が間違っているのだと思いますが,この辺の資料が少なく分からないでいます.
参考になるコードなどどなたか御存知ないでしょうか?

#include <stdio.h>
#include <signal.h>
#define __USE_GNU/* required for feenableexcept */
#include <fenv.h>
/* void print_flags () {printf ("fetestexcept: %x\n", fetestexcept(FE_ALL_EXCEPT));} */
void fpe_handler (int signum) {
/* feclearexcept (FE_ALL_EXCEPT); /\* (A) *\/ */
printf ("hoge\n");
}
int main () {
double d0 = 0; double d1 = 0; double d2 = 0;
signal (SIGFPE, &fpe_handler);
feenableexcept (FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW); /* 浮動小数点例外トラップするようにする */
d2 = d0 / d1;
return 0;
}







[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<27KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef