首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问下fwrite一段数据后有没有简单的方法在文件起始处额外插入一段数据

2014-01-14 
请教下fwrite一段数据后有没有简单的方法在文件起始处额外插入一段数据?fseek到文件起始处后再fwrite是覆

请教下fwrite一段数据后有没有简单的方法在文件起始处额外插入一段数据?
fseek到文件起始处后再fwrite是覆盖式插入,难道必须得把文件数据读取出来,再feek,fwrite写入要插入的数据,再把原来的数据追加上?
[解决办法]
不修改逻辑,看起来只能这样
[解决办法]
文件没法覆盖。
[解决办法]
所谓修改删除文件a某位置的内容,其实是读打开文件a,再将‘a中修改删除位置之前的内容+修改删除的内容+a中修改删除位置之后的内容’保存到文件b,关闭文件a,删除文件a,将文件b改名为与之前文件a相同的名字,仅此而已。

[解决办法]
文件是分块的。
操作系统可以重新分配一块(一个簇,最少的就是一个扇区了)
文件就是这样,一个块,一个块拼凑起来的。

操作系统自身,可以一块一块处理文件,然后拼接成一个文件。
但是,并不提供这样的功能给用户使用。

用户只能,一次得到一个完整的文件,
不断写人以及(SetFilePointer) 这些功能,
可以改变文件长度,从而增加文件的块数。

不能按字节设定文件开始位置;
也不能随便,改变分配给文件的各个块,也不能调整他们的顺序。

所以,在文件前面添加数据,只能是读出来,写进去。
你可以试试,把要添加的文件写到一个文件中;

然后调用系统功能,合并两个文件,看看如果是整块的写入的,
操作系统会不会,对此加以优化。





热点排行