Sun Studio 12:Fortran 库参考

1.4.44.1 局限性

I/O 处理程序只能用另一个字符替换一次。它不能用多个字符替换一个字符。

错误恢复算法只能修复当前读取的错误字符,而不能修复在其他上下文环境中已经解释为有效字符的错误字符。例如,在进行列表控制的读取时,如果输入是 "1.234509.8765",而正确的输入应该是 "1.2345 9.8765",I/O 库将在第二个阶段遇到错误,因为它不是有效的数字。但此时不能回去将 '0' 更改为空白。

当前,这种错误处理功能不适用于名称列表控制的输入。在进行名称列表控制的输入时,如果出现错误,不会调用指定的 I/O 错误处理程序。

只能为外部文件而不能为内部文件设置 I/O 错误处理程序,这是因为没有与内部文件关联的逻辑单元。

只能针对语法错误而不能针对系统错误或语义错误(例如溢出的输入值)调用 I/O 错误处理程序。

如果用户提供的 I/O 错误处理程序不断向 I/O 库提供错误的字符,从而导致反复调用用户提供的 I/O 错误处理程序,则可能出现无限循环。如果在同一个文件位置反复出现错误,错误处理程序应该自行终止运行。一种解决方法就是通过将 CORR_ACTION 设置为 0 来采用缺省的错误路径。这样,I/O 库将继续运行并进行正常的错误处理。