2009-11-20 71 views

回答

6

如果你看看documentation for CreateFile(),这个参数是dwShareMode。这可以确定另一个进程在打开时可以对该文件执行的操作。

指定FILE_SHARE_READ让另一个进程打开文件以供阅读。有FILE_SHARE_WRITE,这意味着另一个进程可以写入它。还有FILE_SHARE_DELETE,它允许删除和(IIRC)也重命名。

如果有人在没有FILE_SHARE_WRITE的情况下打开文件,并打开文件进行写入访问,则会得到ERROR_SHARING_VIOLATION。否则,你应该可以写信给它。

不幸的是,如果一个进程出现并且没有设置共享标志来允许你需要的东西,那么你的运气非常不好。虽然您可能可以使用MoveFileEx()和选项MOVEFILE_DELAY_UNTIL_REBOOT。但我不确定这是否有效;除了它存在之外,我对这个电话的了解不多。 :-)