2010-05-05 41 views
2

如何鎖定Windows中的文件,以便只能通過一個進程打開/讀取/寫入該文件?如何鎖定Windows中的文件?

我發現該文件可以鎖定CreateFile0dwShareMode標誌。它可以工作,但只有返回的句柄可以用來處理文件。但我希望能夠將文件鎖定到其他進程,並同時在我的進程中創建多個句柄。

請幫我解決這個問題,或者給一些提示...

回答

2

爲什麼需要在同一個進程中兩次創建相同的文件?您可以在流程的所有I/O功能中使用一個句柄,而無需重新打開文件。如果您需要將句柄傳遞給另一個進程,則可以使用DuplicateHandle函數。

+0

我正在使用它們調用CreateFile的各種庫,並且因文件被鎖定而失敗。所以我想知道是否有可能爲其他人鎖定該文件,但不適用於我的過程。 – matsoor 2010-05-05 09:10:42

+1

您的選擇是將句柄傳遞給庫或不鎖定文件。 – 2010-05-05 12:23:39

1

我不認爲你可以做到這一點。您可以得到的最接近的結果是使用CreateFile第一次打開/鎖定文件,然後使用DuplicateHandle從您已有的文件創建多個句柄