Sun Studio 12:Fortran 库参考

1.4.13.1 fseek:将文件复位到逻辑单元中

该函数的调用方式如下所示:

INTEGER*4 fseek

n = fseek( lunit, offset, from )

lunit

INTEGER*4

输入 

开放的逻辑单元 

offset

INTEGER*4

INTEGER*8

输入 

相对于 from 指定位置的字节偏移量

 

如果针对 64 位环境进行了编译,需要 INTEGER*8 偏移值。如果提供了文字常量,它必须是 64 位常量,例如:100_8

from

INTEGER*4

输入 

0=文件开头 

1=当前位置 

2=文件结尾 

返回值 

INTEGER*4

输出 

n=0:OK;n>0:系统错误代码


注 –

对于后续文件,在调用 fseek 后面执行输出操作(例如 WRITE)会导致 fseek 位置后面的所有数据记录被删除,并替换为新的数据记录(以及文件结束标记)。只有在使用直接访问文件时,才能将记录重新写入到位。


示例:fseek()-将 MyFile 复位到距开头两个字节处


        INTEGER*4 fseek, lunit/1/, offset/2/, from/0/, n
        open( UNIT=lunit, FILE=’MyFile’ )
        n = fseek( lunit, offset, from )
        if ( n .gt. 0 ) stop ’fseek error’
        end

示例:同上,但在 64 位环境中,使用 -m64 编译:


        INTEGER*4 fseek, lunit/1/,  from/0/, n
        INTEGER*8 offset/2/
        open( UNIT=lunit, FILE=’MyFile’ )
        n = fseek( lunit, offset, from )
        if ( n .gt. 0 ) stop ’fseek error’
        end