文件指针1带动同一文件下的指针2
来源:互联网 发布:网络公益活动 编辑:程序博客网 时间:2024/05/01 16:59
今天在做题文本格式化的时候原本以为大功告成了,从表面上看都正确,但是经过细心一看大跌眼镜,原本文件是145KB的文件运行完之后输出的文件才94KB然后经过检查,确定是有一段指针的地方错误了,删除这段之后文件大小就正常了。我还认为文件指针跟其他的指针有着相同的特性 但是今天做了个实验发现,其特性与其他文件的指针有一个地方并不相同
假如我定义了char *p1,*p2;
假如p2指向一个10空间的头地址位置在1,然后在进行p1=p2的操作
再对p1向后移动3次也就是说现在p1在4的位置上p2仍然在1的位置上
这是普通变量指针的特性
但是今天在做题的时候发现文件的指针却不是这样
FILE *p1 *p2
重复上面char的操作然会会发现p1移动p2也跟着移动即使不对p2进行任何操作,p2也会移动
一下是验证程序
#include<stdio.h>
#include<stdlib.h>
main()
{
FILE *fp,*pf;
char ch,cch;
fp=fopen("f://123.txt","r");
pf=fp;
cch=fgetc(pf);
while(cch!=' ')
cch=fgetc(pf);
ch=fgetc(fp);
printf("%c",ch);
}
f://123.txt里的文件内容是wo ai bei jing tian an mei
最后得到的答案是a
我们称它为"文件指针",并不是指它就直接指向文件中某个位置.你DEBUG看一下就知道了,文件指针指向的是一个结构,这个结构里面包含了正在处理的文件的相关信息,因此,你让pf=fp后,pf也指向了同一个结构,因此对pf和fp的操作,在本质上都是一样的.
- 文件指针1带动同一文件下的指针2
- 文件的位置指针
- Linux下的文件描述符与文件指针
- 文件指针
- 指针文件
- 文件指针
- 文件指针
- 文件指针
- Linux — linux下的文件标述符和文件指针
- 指针文件fp的使用
- 文件指针的结构体
- 指针方式的文件拷贝
- 文件指针与文件位置指针,文件位置指针相关的库函数
- 文件指针问题(2)
- Linux下的文件描述符与文件指针及其区别
- “文件指针,文件句柄,文件描述符” 的区别
- 文件指针 & 文件描述符
- 使用文件指针操作文件
- 花样年华
- 在内核中使用线程与skb队列发送数据
- 走在一起是缘分,在一起走是幸福
- Javascript中最常用的55个经典技巧
- 结构体在内存中对齐
- 文件指针1带动同一文件下的指针2
- mysql 添加字段、删除字段、调整字段顺序
- 堆栈和缓冲区溢出
- hibernate分页实现原理
- C语言文件操作
- Hibernate缓存管理
- javascript 使用Cookies
- Microsoft.DOMDocument.5.0与Microsoft.FreeThreadedDOMDocument.5.0的区别
- XML文档的节点类型