Sun Studio 12:Fortran 库参考

1.4.14 fseeko64ftello64:确定大型文件的位置和复位大型文件

fseeko64ftello64fseekftell 的“大型文件”版本。它们采用并返回 INTEGER*8 的文件位置偏移值。(“大型文件”是指大于 2 GB 的文件,因此字节位置必须以 64 位整型值表示。)可使用这些函数确定大型文件的位置和/或复位大型文件。

1.4.14.1 fseeko64:将文件复位到逻辑单元中

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

INTEGER fseeko64

n = fseeko64( lunit, offset64, from )

lunit

INTEGER*4

输入 

开放的逻辑单元 

offset64

INTEGER*8

输入 

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

from

INTEGER*4

输入 

0=文件开头 

1=当前位置 

2=文件结尾 

返回值 

INTEGER*4

输出 

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


注 –

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


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


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

1.4.14.2 ftello64:返回文件的当前位置

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

INTEGER*8 ftello64

n = ftello64( lunit )

lunit

INTEGER*4

输入 

开放的逻辑单元 

返回值 

INTEGER*8

输出 

n≥0:n 为距文件开头的字节偏移量

n<0:n 为系统错误代码

示例:ftello64()


       INTEGER*8 ftello64, lunit/1/, n
       open( UNIT=lunit, FILE=’MyFile’ )
       ...
       n = ftello64( lunit )
       if ( n .lt. 0 ) stop ’ftell error’
       ...