c - 如何在同一进程内共享共享对文件的读/写访问权限,但在外部禁止它?

标签 c windows file winapi file-permissions

我有几个对象持有同一个文件的句柄。但是,这些对象中的每一个都在读/写文件的不同部分。我需要阻止对该文件的外部访问,但仍然能够在我的进程中为其创建新的句柄。

如果我在调用 CreateFile 时不共享读/写访问权限,我就无法从我的进程中获取文件的新句柄。如果我使用 DuplicateHandle,所有句柄将共享相同的文件位置。

我可以通过为根据需要到处寻找的文件制作代理来解决这个问题,但这会导致糟糕的设计。有什么办法可以实现这样的内部共享?

最佳答案

根据您的需要,您可以调用一次 CreateFile() 来创建/打开文件,然后让您的每个对象使用 CreateFileMapping()MapViewOfFile() 使用单个文件句柄作为基础来访问文件的不同部分。

关于c - 如何在同一进程内共享共享对文件的读/写访问权限,但在外部禁止它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18775431/

相关文章:

c - 如何使 GCC 输出到标准输出?

arrays - malloc 接触未分配的内存

linux - 针对 Active Directory 验证登录凭据(适用于受工作站限制的用户)

java - 如何创建一个将在 JVM 终止时自动删除的临时目录?

c - 覆盖链表 C

c - 在 c 中输入算术运算(例如 5*4)

c - 是什么导致破管错误?

android - 开发服务器返回错误代码 403 native react

windows - 我可以在同一台服务器上安装、删除和重新安装相同的 SSL 证书吗

C++单独的文件?