[英]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_NEW
和0
(共享模式)可確保僅由您的進程打開文件,而FILE_FLAG_DELETE_ON_CLOSE
可確保在您關閉文件或進程崩潰(禁止上天堂)時將其自動刪除。
不過,這是在Win32上實現跨進程鎖定的一種比較笨拙的方法。 發明了共享Mutex來解決此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.