14.2.19 文件定位

有三个函数可用于设置和确定给定文件的文件指针位置。

 
pos = ftell (fid)

返回文件指针的位置,即从文件描述符 fid 所指定文件的起始位置开始的字符数。

另请参阅: fseek, frewind, feof, fopen.

 
status = fseek (fid, offset)
status = fseek (fid, offset, origin)

将文件 fid 中的文件指针设置到偏移量 offset 所指定的位置。

指针定位在距参照点 origin 偏移 offset 个字符的位置。origin 可以是以下预定义变量之一:SEEK_SET(文件开头)、SEEK_CUR(当前位置)或 SEEK_END(文件末尾),也可以是字符串 "bof""cof""eof"。如果省略 origin,则默认为 SEEK_SEToffset 可以为正数、负数或零,但并非 originoffset 的所有组合都能实现。

fseek 成功时返回 0,出错时返回 -1。

另请参阅: fskipl, frewind, ftell, fopen, SEEK_SET, SEEK_CUR, SEEK_END.

 
fseek_origin = SEEK_SET ()

返回要传递给 fseek 的数值,用于将文件指针相对于文件开头进行定位。

另请参阅: SEEK_CUR, SEEK_END, fseek.

 
fseek_origin = SEEK_CUR ()

返回要传递给 fseek 的数值,用于将文件指针相对于当前位置进行定位。

另请参阅: SEEK_SET, SEEK_END, fseek.

 
fseek_origin = SEEK_END ()

返回要传递给 fseek 的数值,用于将文件指针相对于文件末尾进行定位。

另请参阅: SEEK_SET, SEEK_CUR, fseek.

 
frewind (fid)
status = frewind (fid)

将文件指针移动到文件描述符 fid 所指定文件的开头。

如果请求了输出参数 status,则 frewind 成功时返回 0,遇到错误时返回 -1。

编程说明:frewind 等价于 fseek (fid, 0, SEEK_SET)

另请参阅: fseek, ftell, fopen.

以下示例将当前文件位置存储在变量 marker 中,将指针移动到文件开头,读取四个字符,然后返回到原始位置。

marker = ftell (myfile);
frewind (myfile);
fourch = fgets (myfile, 4);
fseek (myfile, marker, SEEK_SET);

版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2