c语言fseek,急求高手解答(满意加100分)!

来源:百度知道 编辑:UC知道 时间:2024/05/13 06:14:21
我在用C文件操作时,遇上了个问题!
当fopen一个文件后它就反加指向该文件的指针,我printf ("%p",f);得到一个结果,当我fseek(f,0,SEEK_END);后,我再printf ("%p",f);结果怎么不变呢?....于是我查看了一下FILE的结构,里面有个*buffer与*curp,但我用同样的方法,也得到一样的结果,这是为何??我该如何找到,文件的尾指针呢?急求高手回答!

不存在什么尾指针

文件指针就是这样一个结构
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};

可以通过函数来获取其当前位置
ftell(f);//距文件起始位置的距离,fseek(f,0,SEEK_END);如果进行过即为文件大小

判断文件是否结束的有feof函数

源文件贴一下。

函数fseek的原形为fseek(FILE*,int,int),你那个指向文件的指针f就是FILE*型数据,作为实参出现在函数fseek的调用中,其值当然不会改变了!