【发布时间】:2019-12-05 06:43:05
【问题描述】:
我学习了一些关于MemoryMappedFile 的基础知识,我看到有一个enum 成员叫MemoryMappedFileAccess.ReadExcute。
我认为这意味着当你打开一个 exe 文件时,它(我的程序)会执行它(.exe 文件)并读取其中的字节(.exe 文件)但是当我执行程序时它会抛出一个错误:
访问路径被拒绝 [UnauthorizedAccessException]
我的代码:
static void Main(string[] args)
{
FileStream fs = new FileStream("programe.exe", FileMode.OpenOrCreate, FileAccess.ReadWrite,
FileShare.ReadWrite);
MemoryMappedFile memory = MemoryMappedFile.CreateFromFile(fs, "mapname", 0,
MemoryMappedFileAccess.ReadExecute,null,0,false);
MemoryMappedViewAccessor mmr = memory.CreateViewAccessor(0, fs.Length, MemoryMappedFileAccess.Read);
Console.ReadKey();
}
谁能给我解释一下?
【问题讨论】:
-
@jdweng 好的,我该怎么做才能解决异常
-
@CaiusJard 是的,我已经读过了,好吧 Read 和 ReadExcecute 有什么区别??
标签: c# memory-mapped-files memory-mapping