如何应用存储映射文件建立任意大小的文件?(思路/代码)我欲创建一个记录文件,从程序运行开始就向该文件中写入数据,然后定时向其中加入数据。打算应用存储映射文件技术进行存储,文件可能很大而且未知,那么怎样才能创建呢?
解决方案 »
- 帮忙纠个错
- XP下怎么拷贝出超出屏幕分辨率的象素
- 线程传递参数是数字怎么做?
- 看不懂com,怎么办啊?
- 请教DLL的问题,在线等……
- 如何在VC里打开一个未连接的数据库的记录集(在线等待!!!)
- 难道VC++没有LIB只有DLL了么?还有没有C的时候的LIB?
- 谁能给我一套关于dll制作的详细资料,dll端与cpp端都要,
- VC++如何将多文档程序制作成DLL动态库?可以行的通吗?感谢!
- 各位,在用VC编写程序时,要经过那些步骤?比如,在什么时候添加对象等等。
- =========Release,Debug==== 斑竹帮忙!=======
- 哪位高手能给在下讲讲win2000中的活动目录?详细点!
自己去MSDN上找找具体的用法吧,我以前用过,速度近略低于内存操作,可惜暂时找不到代码。不过就你这样的情况,建议你还是不要这样处理。
因为你把所有的东西都写在映射文件中,如果中间发生意外,例如:断电。你的记录文件将全部丢失。
所以你还是采取定长保存到硬盘文件的方法,比较妥当点。这样即使发生意外,也不会丢失全部文件。
添加的时候用f.SeekToEnd()
然后f.Write...就可以了
就你的应用而言,用fopen(filename, "ab+");
然后把数据写到文件尾部就足够了,每次写的时候重新打开都可以,windows很多操作(如启动一个进程,加载一个模块)等都依赖于访问磁盘,所以文件访问类代码效率很高,没必要象你这样麻烦。当然文件映射有的时候很有用,如我写了一个解密程序,就是用文件映射作的,这时就可以直接用内存操作完成文件加密,效率比其它方式高。