2015-06-21 45 views
0

我有一个程序读取由软件写入的文件。但是,软件在写入文件时会锁定文件(我甚至无法复制文件!)。如何在写入文件时读取该文件?读取文件,而另一个程序锁定它

我使用Windows 7与NTFS文件系统,我的程序是用C++编写的。

+1

如果您没有源代码并且能够修改正在编写的程序,则不能。即使你可以做这些事情(根据@max Taldykin的答案),然后根据_why_你想要读取正在写入的文件以及它如何被写入,你可能必须小心数据的一致性。 – TripeHound

回答

1

其写入文件应该启用读共享打开它,否则其他进程不能从尚未关闭的文件读入程序:

FILE_SHARE_READ

随后启用在文件或设备上打开操作以请求读取访问。
否则,如果其他进程请求读取访问,则无法打开文件或设备。
如果未指定此标志,但文件或设备已打开以进行读取访问,则该功能失败。

查看更多详细信息在MSDN CreateFile

+0

如果此标志未启用,是否有任何方法将其打开以供读取? (任何技巧,黑客......?) – abdolahS

+0

不知道任何黑客,但如果你有足够的特权,你可以杀死持有锁的程序,它会释放它。 –

相关问题