2009-11-20 45 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。但我不確定這是否有效;除了它存在之外,我對這個電話的瞭解不多。 :-)