C ++ stdio :: rename (); синхронное? - PullRequest
0 голосов
/ 03 февраля 2009

Я просто бродил, если stdio::rename() вызов функции полностью синхронен. Так доступен ли файл сразу после возврата из вызова функции под новым именем или может пройти некоторое время (несколько миллисекунд), пока это не произойдет? Я расследую раздражающую ошибку времени и подозреваю, что последний случай произошел.

Мое программное обеспечение работает на компьютере сервера Win2k3.

1 Ответ

3 голосов
/ 03 февраля 2009

Среда выполнения MSVC просто вызывает MoveFile() API, который является синхронным.

Если вы пытаетесь создать новый файл со старым именем (то есть, как некоторые редакторы сохраняют файл, переименовывая оригинал в «filename.bak», а затем сохраняя новый файл, используя оригинальное имя файла), и вы ' Если вы удивлены тем, что новый файл имеет дату создания (и другие метаданные), совпадающую с исходным файлом, то вас может укусить «Туннелирование файловой системы»:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...