要将函数作为异常处理程序建立,请将函数名称与要监视的异常的名称和要采取的操作一起传递给 ieee_handler()。一旦建立了处理程序,无论何时出现特定的浮点异常和调用指定的函数,都会产生 SIGFPE 信号。
ieee_handler() 的调用形式如下表所示:
表 6–4 ieee_handler (action , exception , handler) 的参数
参数 |
类型 |
可能值 |
---|---|---|
action |
character |
get、set 或 clear |
exception |
character |
invalid、division、overflow、underflow 或 inexact |
handler |
函数名 |
用户处理函数的名称或 SIGFPE_DEFAULT、SIGFPE_IGNORE 或 SIGFPE_ABORT |
返回值 |
integer |
0 =OK |
用 f95 编译的、调用 ieee_handler() 的 Fortran 95 例程还应该声明:
#include ’floatingpoint.h’
特殊参数 SIGFPE_DEFAULT、SIGFPE_IGNORE 和 SIGFPE_ABORT 定义在这些包含文件中,可用于更改与特定异常相应的程序行为:
SIGFPE_DEFAULT 或 SIGFPE_IGNORE |
出现指定异常时不采取任何操作。 |
SIGFPE_ABORT |
程序在异常时中止(可能会使用转储文件)。 |