如何应用存储映射文件建立任意大小的文件?(思路/代码)我欲创建一个记录文件,从程序运行开始就向该文件中写入数据,然后定时向其中加入数据。打算应用存储映射文件技术进行存储,文件可能很大而且未知,那么怎样才能创建呢?

解决方案 »

  1.   

    CreateFileMapping();OpenFileMapping();MapViewOfFile()
    自己去MSDN上找找具体的用法吧,我以前用过,速度近略低于内存操作,可惜暂时找不到代码。不过就你这样的情况,建议你还是不要这样处理。
    因为你把所有的东西都写在映射文件中,如果中间发生意外,例如:断电。你的记录文件将全部丢失。
    所以你还是采取定长保存到硬盘文件的方法,比较妥当点。这样即使发生意外,也不会丢失全部文件。
      

  2.   

    同意,还是用CFile/CStdioFile之类的把
    添加的时候用f.SeekToEnd()
    然后f.Write...就可以了
      

  3.   

    文件大小总是受制于磁盘大小的,所以任意大小是不可能,只能相对于硬盘可用空间来说。
    就你的应用而言,用fopen(filename, "ab+");
    然后把数据写到文件尾部就足够了,每次写的时候重新打开都可以,windows很多操作(如启动一个进程,加载一个模块)等都依赖于访问磁盘,所以文件访问类代码效率很高,没必要象你这样麻烦。当然文件映射有的时候很有用,如我写了一个解密程序,就是用文件映射作的,这时就可以直接用内存操作完成文件加密,效率比其它方式高。