我有几个对象持有同一个文件的句柄。但是,这些对象中的每一个都在读/写文件的不同部分。我需要阻止对该文件的外部访问,但仍然能够在我的进程中为其创建新的句柄。
如果我在调用 CreateFile
时不共享读/写访问权限,我就无法从我的进程中获取文件的新句柄。如果我使用 DuplicateHandle
,所有句柄将共享相同的文件位置。
我可以通过为根据需要到处寻找的文件制作代理来解决这个问题,但这会导致糟糕的设计。有什么办法可以实现这样的内部共享?
最佳答案
根据您的需要,您可以调用一次 CreateFile()
来创建/打开文件,然后让您的每个对象使用 CreateFileMapping()
和 MapViewOfFile()
使用单个文件句柄作为基础来访问文件的不同部分。
关于c - 如何在同一进程内共享共享对文件的读/写访问权限,但在外部禁止它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18775431/