我希望能夠在Win32中鎖定一個文件,以便它只能被當前進程使用。最明顯的方法來實現這一目標似乎是通過CreateFile
:鎖定文件但允許當前進程使用?
HANDLE file = ::CreateFile("c:\\foo.txt",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
但是一旦調用成功,該文件也顯然是我自己的過程,即鎖定。一旦MFC框架的東西試圖打開它,我會收到「共享衝突」。
有沒有一種方便的方法來阻止其他進程訪問文件,但仍然允許我的?我寧願不必更換所有的加載/保存框架代碼...我在我傳遞給CreateFile的參數中做錯了什麼?