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

写日志,怎样先缓存在内存,然后一次写文件到硬盘?解决方法

2012-01-15 
写日志,怎样先缓存在内存,然后一次写文件到硬盘?偶现在写日志时,直接调用偶写的一个函数WriteLog,WriteLog

写日志,怎样先缓存在内存,然后一次写文件到硬盘?
偶现在写日志时,直接调用偶写的一个函数WriteLog,
WriteLog   就是直接打开文件,在末尾追加,然后关闭。
有好几个线程,基本上一直都在写,这样写效率比较低。
偶想改成写到内存文件中,然后到一定大小或定时写到硬盘上,请各位老大赐教,谢谢。

[解决办法]
内存映射文件
[解决办法]
内存里面维护一个buffer, 写日志的时候写进buffer, 移动buffer指针
写入的时候如果发现buffer指针将超过上限就打开文件写进去,清零指针重头写入buffer
多线程的时候注意用临界区保护一下

-------------------------------------------------------
广告:VC/WinAPI 网络/多线程讨论 QQ群, 群号:41356711
[解决办法]
写日志还是打开文件、追加、关闭文件的好。
因为日志追踪了程序的运行状态,当程序崩溃时,日志就很有作用了。
[解决办法]
还是建议文本追加方式好,同意上楼说法
[解决办法]
注意要用互斥。
[解决办法]
createmappingfile
[解决办法]
可以专门有一个线程进行log的输出,其他的线程把log信息都往这个log线程发送,这个不会因为要等log输出,而导致本线程的停滞。
[解决办法]
定义一个CString m_str, str;
有什么就写上: m_str = m_str + str;
最后把m_str写到文件里
[解决办法]
同意五岭散人

热点排行