易码技术论坛

 找回密码
 加入易码
搜索
查看: 57787|回复: 5

[求助]是fseek()错了还是我错了???晕了一整天的问题

[复制链接]
发表于 2006-1-18 19:34:00 | 显示全部楼层
空文件须顺序写。fseek指向的地方不能大于文件当前长度。
 楼主| 发表于 2006-1-19 06:18:00 | 显示全部楼层
那就是说,先将文件的大小扩大至所须大小,再用fseek定位?

例如,先写入空的数据,改变文件的长度

char fp;

char data[6400];

memset(data,0,6400);

fp=fopen(filename,"w");if(fp==0)exit(0);

fwrite(data,1,6400,fp);

然后fseek所能指向的位置最多就是6400了

这样做问题就解决了吗?我总觉得这样很麻烦,会占用一些时间,且有时文件要用到的大小是不确定的

LEE大哥,是不是还有别的方法来解决?


发表于 2006-1-19 10:06:00 | 显示全部楼层
先在RAM建好文件映像,然后一次写入。
 楼主| 发表于 2006-1-19 18:23:00 | 显示全部楼层
我基本知道了,如果fseek超出文件当前的大小,先把它的大小扩大到fseek()要指的地方处就行了

不过,麻烦的是我得自己判断fseek()时是否超出
发表于 2006-1-19 19:18:00 | 显示全部楼层
fseek()时是否超出可以看返回值。
 楼主| 发表于 2006-1-18 18:35:37 | 显示全部楼层 |阅读模式
编译后,运行,生成的icon.dat中的数据并没有向fseek所指位置写入,这是怎么了?

我哪里错了? 以前从没遇到过这种问题,都是fseek到哪里,就是哪里的,

这是怎么了???

请大家帮帮忙~~~~谢谢了,我很急的
[upload=txt]viewFile.asp?ID=5054[/upload]
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-6-16 19:34 , Processed in 0.011628 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表