我担心在FAT文件系统上通过CreateFileMapping使用内存映射IO的危险.具体情况是用户直接从USB记忆棒打开文件(是的,你试着禁止他们这样做!).
MSDN 管理内存映射文件文章没有说明任何有关文件系统约束的内容.
更新
我没有任何真正的理由感到担心,但有一种模糊的感觉,我会在某些时候读到他们的问题(我的职业生涯超过25年,所以我的记忆中有很多模糊的深度,一直回来到8位微处理器!).是否应该支持它们的问题对我来说非常重要,所以我想询问是否有人可以证实我的担忧.谢谢你让我放心.
内存映射文件是我最喜欢的功能之一.这绝对没有危险.它是基本极其优化的Windows I/O功能之一.如果启动EXE或加载间接DLL,则它在内部实现为内存映射文件映射.
它支持所有类型的文件系统,包括FAT.
顺便说一句,atzz说网络驱动器上允许使用内存映射文件.我可以添加它不仅是允许的,但严格建议使用内存映射文件和网络文件.在这种情况下,I/O操作将以非常好的方式缓存,而其他(C/C++)I/O则无法完成.
如果你想要从CD或网络打开EXE不会崩溃,可以用标题中的一位标记Program Executable(链接器开关/ SWAPRUN参见http://msdn.microsoft.com/en-us/library /chzz5ts6.aspx).从USB记忆棒打开的文件没有选项.
但是用户究竟有什么问题?他们不使用"安全删除硬件"图标吗?然后,他们必须学会这样做,就像他们必须学会不切换计算机电源,但正确关闭计算机.
你能解释为什么你会发现使用内存映射文件的危险,以及在哪些情况下你遇到问题并且使用其他I/O操作没有这样的问题?
| 归档时间: |
|
| 查看次数: |
946 次 |
| 最近记录: |