命名内存映射文件

时间:2015-09-29 01:06:21

标签: c++ memory-mapped-files

根据文档,在Local \或Global \之后,除了向后斜杠之外,任何字符都可以。我决定根据物理文件的文件路径命名我的mmf,如下所示:

Twilio.Device.disconect()

因此,如果文件位于C:\ test \ vht1.tst,那么它会生成字符串" Local \ C:/test/vht1.tst"

我的计算机上没有这个问题,但是这个软件最终会出现在共享托管环境中,而且我无法找到有关命名MMF的常规信息。所以..是这个好主意?

1 个答案:

答案 0 :(得分:0)

命名MMF映射(内存映射文件)有两个原因:

  • 读者与读者之间的界面MMF的作家
  • 帮助您调试的标识符

除非您有一个非常大的项目,否则您不太可能发生本地名称冲突。你可以根据自己的喜好命名。

包括驱动器号和路径可能不是最佳选择。保持简单:

std::string GetMapName(std::string filePath)
{
  return "Local\\" + Path::GetFileName(filePath);
}

根据文档[1],你不应该使用" Session \"字首。它保留给系统使用。而且" Global \"前缀需要SeCreateGlobalPrivilege。

[1] https://msdn.microsoft.com/en-us/library/aa382954%28v=vs.85%29.aspx