簡體   English   中英

C ++鎖定文件后讀取文件

[英]C++ Read a File after Locking it

我是第一次進行文件鎖定,但是在Google中找不到相關的解決方案。

我正在使用此代碼鎖定文件,以鎖定文件。

ifile = CreateFileW(FileName, GENERIC_READ |  GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_DELETE | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);

在下一行中,我嘗試使用打開同一文件

errno_t ErrorNumber = _wfopen_s(FileHandle, FileName, "rb");

目的是在此功能讀取文件內容時鎖定文件,以防止其他任何進程寫入文件。 使用“ rb”打開文件時,我得到EACCESS:13錯誤代碼。

有什么想法為什么以及如何在鎖定文件后啟用讀取文件?

感謝Sujatha

要在Win32上創建一個“鎖定文件”,不允許其他進程打開它:

ifile = CreateFileW(FileName, GENERIC_READ |  GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_FLAG_DELETE_ON_CLOSE, NULL);

CREATE_NEW0 (共享模式)可確保僅由您的進程打開文件,而FILE_FLAG_DELETE_ON_CLOSE可確保在您關閉文件或進程崩潰(禁止上天堂)時將其自動刪除。

不過,這是在Win32上實現跨進程鎖定的一種比較笨拙的方法。 發明了共享Mutex來解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM