C语言文件指针自动移动

2024-11-22 12:34:18
推荐回答(4个)
回答1:

文件内部指针不是就是用打开文件函数所赋值的那个指针,
打开函数的指针,是文件流的指针,指向这个文件流。
内部指针指向当前操作在文件流中的位置
fp是文件指针的话
可以使用ftell(fp)来获取当前内部指针位置。

也有fseek函数来设卖慧置内部指针位置局液,这些函数调用的时候,必须使用文件流的 指针。文件流的指针始终是这个fp,但内部指针的位置是一直在移动的,没有一个可见的内部指针的变量来让你操作,只对文件指针操作就可以了。

读写文件的时候内部指针自动移动,是C的IO系统管理来实现的,这个文件流其实仍然是IO,跟键盘桐配物鼠标都是由IO系统管理来做的,不用去关心底层的具体操作,只要知道读写操作以后内部指针变了,就行。

回答2:

文件指针你不能直接使用,打开或辩文件的那是流指针,永远指向流本身,修改文件内容指针的位置,只能通过fseek来设置,而且得到值不是指针,只是个长度,文件指针是系统管理的,你不能直接操作这个指针,你读取成功后指针后移是系统完成的,不是C语言函数完成的,C语言实现文件操作也是通过调用系统API实现的,文件是操作系统的一个对象,直接操作他的是windows系统,并不是C语言。。。。敬滑
当然我说的这些衫稿缺特指WINDOWS系统的C语言程序,其他环境的,甚至是裸机环境的肯定不是这样,C语言只规定了语法和函数功能,不规定实现方法(这没法规定)。。。。

回答3:

初学C语言就考虑到这么多,真不错~
fopen返回的FILE *其实就是个int *,那个int只是当前c打开的文件的标识,并不是培橡文件指针。在windows,fopen 底层调用了API CreateFile,这个API返回的HANDLE类型也不是文件指针,文件指针是隐藏的,用户基本看不到的。
指针自动移伍中拦动(fread/fwrite)是调用了相应API(ReadFile/WriteFile)的结果,即API自行修改了文件指针。
还有什么腔胡问题。。。

回答4:

微机原理中有个寄存器叫做指针寄存器他是随着程序的执行地址自动加一,你说的移动应该是地址的变化吧