免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1074 | 回复: 4
打印 上一主题 下一主题

文件操作出错,请求帮助! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-09 16:30 |只看该作者 |倒序浏览
我声名了一个结构,长度为192个字节,将其一个个赋不同值后写入文件(超过5个),单独写入后,在将其读出 结果正确。然后用另程序将这个文件读入一个结构数组里,发现读第6个元素(大于1000个字节)读出的数值是错的,如果fseek 960个字节后在读,读出却是正确的,难道大于1024个字节的文件不能一次读完吗?请问这是为什么?

#pragma pack(1)
typedef struct LOGININFO {
char companyID[64];
.......
.......
double keyVer;
int isLogin;
int socket;
};
#pragma pack()



字节对齐的问题我已经考虑了,但还是不对
在freebsd5.2上

论坛徽章:
0
2 [报告]
发表于 2005-08-09 17:15 |只看该作者

文件操作出错,请求帮助!

没看明白,有的地方说的好象还有点矛盾

论坛徽章:
0
3 [报告]
发表于 2005-08-09 17:23 |只看该作者

文件操作出错,请求帮助!

在你声明的结构中,某个结构成员在赋值的时候可能产生益出了,
仔细检查结构中数组长度的定义

论坛徽章:
0
4 [报告]
发表于 2005-08-09 17:41 |只看该作者

文件操作出错,请求帮助!

把结构中的double改为两个int 就没问题,但是double就是不行
我检查了一下,没有溢出

论坛徽章:
0
5 [报告]
发表于 2005-08-09 17:59 |只看该作者

文件操作出错,请求帮助!

在你声明的结构中,某个结构成员在赋值的时候可能产生益出了,
仔细检查结构中数组长度的定义


我觉得益出好象不是原因,无论如何,直接读的话都是按位模式读写的,只要写什么就读什么。

你能把你出错的那段代码也贴出来吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP