随机访问
int fseek(FILE *stream, long int offset, int whence)
- stream -- 指向 FILE 对象的指针, 该 FILE 对象标识了流.
- offset -- 这是相对 whence 的偏移量, 以字节为单位. 若为负则向前移.
- whence -- 这是表示开始添加偏移 offset 的位置.
- SEEK_SET -- 文件开头
- SEEK_CUR -- 文件指针当前位置
- SEEK_END -- 文件末尾
- 如果成功, 返回0, 否则返回非零值.
FILE* file = fopen("test.txt", "r");
if(file != NULL)
{
fseek(file, 2, SEEK_SET);
putchar(getc(file));
fclose(file);
}
当前位置
long int ftell(FILE *stream)
该函数返回位置标识符的当前值. 如果发生错误, 则返回 -1L, 全局变量 errno 被设置为一个正值.
FILE* file = fopen("test.txt", "r");
if(file != NULL)
{
int len;
fseek(file, 0, SEEK_END);
len = ftell(file);
fclose(file);
printf("test.txt 的总大小 = %d 字节\n", len);
}
设定位置
FILE* file = fopen("test.txt", "r");
if(file != NULL)
{
fpos_t pos; // 使用fpos_t存储位置
fgetpos(file, &pos); // 获取位置
fseek(file, -2, SEEK_END); // 移动当前位置
fsetpos(file, &pos); // 设定位置
printf("%ld", ftell(file));
fclose(file);
}
标签:file,--,位置,访问,int,随机,FILE,SEEK
From: https://www.cnblogs.com/khrushchefox/p/17369895.html