C stdio fseek() 函数

定义和用法

fseek() 函数将文件位置指示器移动到文件中的指定位置。

fseek() 函数定义在 <stdio.h> 头文件中。

实例

例子 1

从文件开始位置读取第 4 个字符:

FILE *fptr;
fptr = fopen("filename.txt", "r");

fseek(fptr, 4, SEEK_SET);
char c = fgetc(fptr);
printf("%c", c);

fclose(fptr);

例子 2

通过将位置指示器移动到文件末尾,然后检查其位置来确定文件大小:

// 打开文件
FILE *fptr;
fptr = fopen("filename.txt", "r");

// 将位置指示器移动到文件末尾
fseek(fptr, 0, SEEK_END);

// 读取位置
int position = ftell(fptr);

// 显示值
printf("%d", position);

fclose(fptr);

语法

fseek(FILE * fptr, long int offset, int origin);

参数

参数 描述
fptr 必需。文件指针,通常由 fopen() 函数创建。
offset 必需。指定相对于原点的文件位置。
origin

必需。指定应用偏移量的文件位置。它可以是以下常量之一:

  • SEEK_SET - 偏移量相对于文件开头
  • SEEK_CUR - 偏移量相对于文件当前位置
  • SEEK_END - 偏移量相对于文件末尾

某些库实现可能不完全支持 SEEK_END 值。

技术细节

返回: 如果成功,返回值为零;如果发生错误,返回非零值。