【发布时间】:2011-03-26 02:31:59
【问题描述】:
我希望能够在 Win32 中锁定一个文件,以便它只能由我当前的进程使用。最明显的实现方式似乎是通过CreateFile:
HANDLE file = ::CreateFile("c:\\foo.txt",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
但是,一旦调用成功,该文件显然也被我自己的进程锁定,即。一旦 MFC 框架的东西试图打开它,我就会收到“共享冲突”。
有没有一种方便的方法可以防止其他进程访问文件但我的进程仍然允许它?我宁愿不必替换所有加载/保存框架代码...我在传递给 CreateFile 的参数中做错了吗?
【问题讨论】: