2015-06-21 47 views
0

我有一個程序讀取由軟件寫入的文件。但是,軟件在寫入文件時會鎖定文件(我甚至無法複製文件!)。如何在寫入文件時讀取該文件?讀取文件,而另一個程序鎖定它

我使用Windows 7與NTFS文件系統,我的程序是用C++編寫的。

+1

如果您沒有源代碼並且能夠修改正在編寫的程序,則不能。即使你可以做這些事情(根據@max Taldykin的答案),然後根據_why_你想要讀取正在寫入的文件以及它如何被寫入,你可能必須小心數據的一致性。 – TripeHound

回答

1

其寫入文件應該啓用讀共享打開它,否則其他進程不能從尚未關閉的文件讀入程序:

FILE_SHARE_READ

隨後啓用在文件或設備上打開操作以請求讀取訪問。
否則,如果其他進程請求讀取訪問,則無法打開文件或設備。
如果未指定此標誌,但文件或設備已打開以進行讀取訪問,則該功能失敗。

查看更多詳細信息在MSDN CreateFile

+0

如果此標誌未啓用,是否有任何方法將其打開以供讀取? (任何技巧,黑客......?) – abdolahS

+0

不知道任何黑客,但如果你有足夠的特權,你可以殺死持有鎖的程序,它會釋放它。 –

相關問題