fseek函数?c语言中fseek是什么意思
一、fseek函数的用法
fseek函数用于重定位流(数据流/文件)上的文件内部位置指针。
函数原型intfseek(FILE*stream,longoffset,intfromwhere);
参数:
stream为文件流的指针
offset偏移量
fromwhere起始位置
具体功能:如果执行成功,stream将指向以fromwhere(起始位置:文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
扩展资料:
intfseek(FILE*stream,longoffset,intfromwhere);
第一个参数file指针
第二个参数移动的偏移量
第三个参数移动到哪里
分别用3个宏
SEEK_SET既0文件开头
SEEK_CUR既1文件当前位置
SEEK_END既2文件结尾
但不推荐用数字最好用宏
二、fseek函数作用
fseek()是重定位流(数据流/文件)上的文件内部位置指针。
注意:文件指针指向文件/流。位置指针指向文件内部的字节位置,随着文件的读取会移动,文件指针如果不重新赋值将不会改变或指向别的文件。
如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset取值大于等于2*1024*1024*1024,即long的正数范围2G),则不改变stream指向的位置,函数返回一个非0值。
三、c语言seek函数使用方法
回答如下:在C语言中,`seek`函数是用来移动文件指针的函数,用于定位文件中的读写位置。它的使用方法如下:
```c
#include<stdio.h>
intfseek(FILE*stream,longintoffset,intorigin);
```
`fseek`函数有三个参数:
-`stream`:指向要进行移动操作的文件流指针。
-`offset`:移动的字节数,可以为正数或负数,正数表示向文件尾方向移动,负数表示向文件头方向移动。
-`origin`:指定起始位置。它可以是以下三个值之一:
-`SEEK_SET`:从文件起始位置开始。
-`SEEK_CUR`:从当前位置开始。
-`SEEK_END`:从文件末尾位置开始。
`fseek`函数的返回值为0表示成功,非0表示失败。失败的原因可能是文件指针无效或者文件流不可移动。
以下是一些`fseek`函数的使用示例:
1.从文件起始位置向后移动10个字节:
```c
FILE*fp=fopen("file.txt","r");
fseek(fp,10,SEEK_SET);
```
2.从当前位置向前移动5个字节:
```c
FILE*fp=fopen("file.txt","r");
fseek(fp,-5,SEEK_CUR);
```
3.从文件末尾位置向前移动20个字节:
```c
FILE*fp=fopen("file.txt","r");
fseek(fp,-20,SEEK_END);
```
注意事项:
-使用`fseek`函数前,需要先打开文件,并通过`fopen`函数获取文件指针。
-`fseek`函数只能用于二进制文件和文本文件,不能用于目录或设备文件。
-在对文件进行读写操作之前,应该先使用`fseek`函数进行定位。