gpt4 book ai didi

winapi - Win32 是否支持 FAT 文件系统上的内存映射文件 (CreateFileMapping)?

转载 作者:行者123 更新时间:2023-12-02 11:47:02 24 4
gpt4 key购买 nike

我担心使用内存映射 IO 的危险,通过 CreateFileMapping ,在 FAT 文件系统上。具体场景是用户直接从 U 盘打开文档(是的,尝试禁止他们这样做!)。

MSDN Managing Memory-Mapped Files article没有提及任何有关文件系统约束的内容。

更新

我没有任何真正的理由担心,但有一种模糊的感觉,我在某个时候读到过他们的问题(我的职业生涯超过 25 年,所以我的内存中有很多模糊的深度,所有回到 8 位微处理器的道路!)。他们是否应该得到支持的问题对我来说非常重要,所以我想问是否有人可以证实我的担忧。谢谢你让我安心。

最佳答案

内存映射文件是我最喜欢的功能之一。 绝对没有危险。它是极其优化的 Windows I/O 基本功能之一。如果启动 EXE 或间接加载 DLL,它会在内部实现为内存映射文件映射。

它受包括 FAT 在内的所有类型的文件系统支持。

顺便说一句atzz说网络驱动器上允许内存映射文件。我可以添加它不仅是允许的,而且严格建议对来自网络的文件使用内存映射文件。在这种情况下,I/O 操作将以非常好的方式进行缓存,而其他 (C/C++) I/O 则不会这样做。

如果您希望从 CD 或网络打开 EXE 时不会崩溃,可以在 header 中用一位标记程序可执行文件(链接器开关/SWAPRUN 参见 http://msdn.microsoft.com/en-us/library/chzz5ts6.aspx )。没有从 USB 内存棒打开文档的选项。

但是用户到底有什么问题呢?他们不使用“安全删除硬件”图标吗?然后他们必须学会这样做,就像他们必须学会不切换计算机电源,而是正确关闭计算机一样。

您能解释一下为什么您发现使用内存映射文件有危险吗?在什么情况下您会遇到问题,而使用其他 I/O 操作则没有这样的问题?

关于winapi - Win32 是否支持 FAT 文件系统上的内存映射文件 (CreateFileMapping)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3227958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com