2009-02-03 16 views
0

J'étais juste errant si l'appel de fonction de stdio::rename() est complètement synchrone. Ainsi, le fichier est-il immédiatement disponible après le retour de l'appel de fonction sous un nouveau nom ou cela peut prendre un certain temps (quelques millisecondes) jusqu'à ce que cela se produise? J'étudie un bug de timing irritant et je suspecte que le dernier cas arrive.C++ stdio :: rename(); synchrone?

Mon logiciel s'exécute sur une machine serveur Win2k3.

Répondre

3

L'exécution de MSVC appelle simplement l'API MoveFile(), qui est synchrone. Si vous essayez de créer un nouveau fichier avec l'ancien nom (par exemple, comment certains éditeurs enregistrent un fichier en renommant l'original en `filename.bak 'puis en sauvegardant le nouveau fichier en utilisant le nom d'origine) et vous « re être surpris que le nouveau fichier a une date de création (et d'autres métadonnées) qui correspond à la peut-être obtenir mordu par son fichier d'origine, alors vous Filesystem Tunneling ':

Questions connexes