⑴ 文件指针是什么文件指针的值又是什么
在文件操作系统中,同时打开的文件个数是受限的,因此在操作系统中对于文件的操作专门设置了一个区域,这个区中为每个文件操作开设了一块操作数据区,其中每个区对应一个文件操作,记录文件位置,当前文件指针位置等,如果进行文件操作需要获得系统分配的一块有效的数据区,这个数据区的编号就是文件句柄,在c中是FILE*类型
操作数据区中,有一个文件指针,存放当前可读写文件位置,是一个字节计数值,在打开当前文件后,这个指针指向文件第1个字符,取值是0,那么如果马上读写文件都是从文件第1个字节开始,假定写入或读取了1个字节内容,文件指针在操作完成后自动变为1,指向下一个可操作的位置。文件指针可以顺序后移(增加值)也可以前移(减少值)当然要借助特殊函数。
假定要获取文件尺寸,可以在打开文件后(文件指针内容为0)利用文件指针操作函数(比如feek)令文件指针转到文件尾部,这时文件指针取值就是文件的实际字节数了。
⑵ 使用fopen()函数打开一个文件时,读写指针一定在文件首对不对
成功打开读写文件时指针一定在文件首。但打开添加 文件时,在文件尾。用rewind(fp) 可以回绕到文件首。
根据实际的读写要求。如果是续写,那起始的指针位置就在文件的末尾。
通常填入“附加”;另外还可以使用“a+”来读和写更新。该文件已更新为“r+”读和写更新。将更新写入“w+”。
fopen函数在当前目录中打开一个文件,调用的一般形式是:
文件指针名称=fopen(文件名,文件模式);
“文件指针名称”必须声明为指向文件类型的指针;
“文件名”是打开文件的文件名;
“文件模式”是指文件的类型和操作要求;
“文件名”是字符串常量或字符数组。
(2)文件读写指针指向哪个位置扩展阅读:
if((fp=fopen("c:\hzk16","rb"))==NULL)
{
printf("
error on open c:\hzk16 file!");
getch();
exit(1);
}
这段程序的意义是,如果返回的指针为空,表示不能打开C盘根目录下的hzk16文件,则给出提示信息“error on open c: hzk16 file!”,下一行getch()的功能是从键盘输入一个字符,但不在屏幕上显示。在这里,该行的作用是等待,只有当用户从键盘敲任一键时,程序才继续执行,因此用户可利用这个等待时间阅读出错提示。敲键后执行exit(1)退出程序。
⑶ 读写位置指针和文件位置指针是一回事吗
从哪里来的这么两个词?读写位置指针 和 文件位置指针C中操作一个文件 ,只会有一个文件指针的啊 , 这个指针指向一个结构体,结构体中有关于当前打开文件的各种信息。如有问题,可以把你看到或读到的内容,粘出一些来,供分析。