Существует возможное состояние состязания когда:
GetTempFileName()
, удаление его и создание папки с тем же именем, или GetRandomFileName()
или Guid.NewGuid.ToString
для именования папки и создания папки позже С GetTempFileName()
после удаления происходит, другое приложение могло успешно создать временный файл с тем же именем. Эти CreateDirectory()
тогда перестал бы работать.
Точно так же между вызовом GetRandomFileName()
и созданием каталога другой процесс мог создать файл или каталог с тем же именем, снова приводящим к CreateDirectory()
сбой.
Для большинства приложений для временного каталога нормально перестать работать из-за состояния состязания. Это чрезвычайно редко, в конце концов. Для них могут часто игнорироваться эти гонки.
В мире сценариев оболочки Unix, создавая временные файлы и каталоги безопасным способом без гонок грандиозное предприятие. Много машин имеют несколько (враждебных) пользователей - думают, совместно использованный веб-хост - и много сценариев и приложений должен безопасно создать временные файлы и каталоги в общем/tmp каталоге. См. Безопасно Создающие Временные Файлы в Сценариях оболочки для обсуждения того, как безопасно создать временные каталоги из сценариев оболочки.
rsync performs no encryption on its own. If you don't use ssh, nor do you tunnel the rsync traffic through stunnel or some kind of VPN, then no encryption is performed. Yes, you can save some CPU cycles this way.
If you use the rsync://
protocol scheme (i.e. when you connect to a rsyncd
daemon) then no encryption will be used (although password authentication is done using a MD4-based challenge-response system and is probably still reasonably secure).
If you use the hostname:/some/path
scheme then rsync transparently calls SSH, which encrypts everything, and uses SSH's native authentication mechanisms. As far as I can tell, some OpenSSH versions supported an option Ciphers null
in the configuration file, but this has been removed in later versions.
Generally you shouldn't worry about encryption overhead, unless you are working in a 1 Gbit network or you have old computers.