FSEEK
Section: Linux Programmer's Manual (3)
Updated: 1993-11-29
Index
NAME
fgetpos, fseek, fsetpos, ftell, rewind - 重定位某个流
总览 (SYNOPSIS)
#include <stdio.h>
int fseek(FILE *stream, long offset, int whence);
long ftell(FILE *stream);
void rewind(FILE *stream);
int fgetpos(FILE *stream, fpos_t *pos);
int fsetpos(FILE *stream, fpos_t *pos);
描述 (DESCRIPTION)
函数
fseek
设置
stream
流 的 文件位置 标志. 新的 文件位置 (以 字节 为 单位) 根据
whence
指定的 文件位置 加上
offset
获得. 如果
whence
设置为
SEEK_SET,
SEEK_CUR,
或
SEEK_END,
则 对应的 文件位置 分别是 文件开始, 当前位置, 或 文件末尾. 成功 调用
fseek
后, 函数 清除 流 的 文件末尾 标志(end-of-file), 同时 消除
ungetc(3)
函数 对 流 的 影响.
ftell
函数 能够 获取
stream
流 的 当前 文件位置.
rewind
函数 把
stream
流 的 文件位置 设置到 文件开始处. 它 等效于:
-
(void)fseek(stream, 0L, SEEK_SET)
另外 它 还能 清除 流 的 错误标志 (见
clearerr(3)).
fgetpos
和
fsetpos
函数 相当于
ftell
和
fseek
(whence 设置 为
SEEK_SET)
的 另一种 写法, 读取 当前 文件位置 并 保存在
pos
中, 或用
pos
指向的值 设置 当前 文件位置. 在 某些 非UNIX系统 中,
fpos_t
可以 是 一种 复杂的 (数据)对象, 因而 这两个函数 大概是 唯一 可移植的
流定位函数.
返回值 (RETURN VALUE)
rewind
函数 没有 返回值. 如果 操作 成功,
fgetpos,
fseek,
fsetpos
返回 0, 而
ftell
返回 当前 偏移 (当前 文件位置), 否则 返回 -1, 并 设置 全局变量 errno,
指出 错误 类型.
错误 (ERRORS)
- EBADF
-
stream
流 不是 可重定位的 流 (non-seekable stream).
- EINVAL
-
fseek
的
whence
参数 不是
SEEK_SET,
SEEK_END,
或
SEEK_CUR.
fgetpos,
fseek,
fsetpos,
和
ftell
函数 也可能 失败后, 把
errno
设置为
fflush(3),
fstat(2),
lseek(2),
和
malloc(3)
的 错误 类型.
遵循 (CONFORMING TO)
fgetpos,
fsetpos,
fseek,
ftell,
和
rewind
函数 遵循 ANSI X3.159-1989 (``ANSI C'') 标准.
另见 (SEE ALSO)
lseek(2),
fseeko(3)
[中文版维护人]
徐明 Email: xuming@users.sourceforge.net
[中文版最新更新]
2004/08/20
第一版
《中国Linux论坛man手册页翻译计划》
http://cmpp.linuxforum.net
Index
- NAME
-
- 总览 (SYNOPSIS)
-
- 描述 (DESCRIPTION)
-
- 返回值 (RETURN VALUE)
-
- 错误 (ERRORS)
-
- 遵循 (CONFORMING TO)
-
- 另见 (SEE ALSO)
-
- [中文版维护人]
-
- [中文版最新更新]
-
- 《中国Linux论坛man手册页翻译计划》
-
This document was created by
man2html,
using the manual pages.
Time: 01:46:58 GMT, August 26, 2004