Что произойдет, если я перекомпилирую исполняемый файл во время его работы? Считывает ли операционная система все содержимое исполняемого файла в память при запуске, поэтому она никогда не будет читать новый исполняемый файл? Или он будет читать разделы нового исполняемого файла, думая, что он не изменился, что может привести к неопределенному поведению?
Что, если у меня запущен скрипт, который многократно вызывает исполняемый файл в цикле, и я перекомпилирую исполняемый файл во время выполнения скрипта. Гарантируется ли, что будущие итерации цикла будут вызывать новый исполняемый файл, и только результат вызова, который выполнялся на момент переключения, может быть поврежден?
Моя ОС — Linux, но мне также любопытно, что происходит в Windows.
mv
записываются на правильный путь и имя. Это означает, что вы получите либо новую, либо старую версию. Если нет, и он пишет это на месте, я сомневаюсь, что вы сможете выполнить программу. В обычных условиях вы не сможете запустить наполовину написанный исполняемый файл. 29.07.2010