2009-02-03 73 views
0

我只是在徘徊,如果stdio::rename()函數調用是完全同步的。那麼,從新名稱下的函數調用返回後立即生成的文件,還是可能需要一些時間(幾毫秒),直到發生這種情況?我正在調查一個惱人的計時錯誤,並懷疑後一種情況發生。C++ stdio :: rename();同步?

我的軟件運行在Win2k3服務器上。

回答

3

MSVC運行時只調用MoveFile() API,它是同步的。

如果您嘗試使用舊名稱創建一個新文件(例如,某些編輯器如何通過將原始文件重命名爲filename.bak然後使用原始文件名保存新文件來保存文件)以及您「再感到驚訝的是,新文件有相匹配的原始文件的,那麼你可能會得到通過咬傷創建日期(和其他元數據)‘文件系統隧道’: