2013-03-07 24 views
1

當我使用CopyFile複製文件時,源文件是否會以任何方式鎖定? 說 - 如果複製操作開始,然後有人想打開源文件,它會成功嗎?如果「某人」請求對該文件進行獨佔訪問,他的Win32 API調用(可能是CreateFile)會失敗,還是會等待(或其他),直到複製操作完成?CopyFile是否在源文件上放置任何鎖定?

+0

我認爲Windows會同步對文件的訪問,至少現在寫保護它。通常,當訪問一個已經打開的文件時,你會得到一個錯誤... – 2013-03-07 12:20:12

回答

3

如果有人請求獨佔訪問已打開的文件,該請求將失敗。 Windows沒有文件打開模式,其中包含「如果有人正在使用該文件,請將其關閉。」

我記得,CopyFile打開源文件,以便其他人可以閱讀,但不寫。

+0

是的。我的意思是,我想的很多。問題是,文檔對細節沒有提及,所以這個問題。 – 2013-03-07 14:32:49

+0

這是一個實現細節,不太可能被正式記錄:) – Deanna 2013-03-07 17:03:34

+2

Wine [CopyFileExW源代碼](http://source.winehq.org/source/dlls/kernel32/path.c#L936)以所有共享。沒有任何保證,這是Windows所做的,但葡萄酒的目標是高度兼容。 – Luke 2013-03-08 13:47:19

相關問題