Что произойдет, если я перекомпилирую исполняемый файл во время его работы? Означает ли операционная система все содержимое исполняемого файла в памяти при запуске, поэтому никогда не будет читать новый исполняемый файл? Или он прочитает разделы нового исполняемого файла, думая, что он не изменился, что привело к возможно неопределенному поведению?Безопасно ли перекомпилировать исполняемый файл во время его работы?
Что делать, если у меня есть сценарий, который многократно вызывает исполняемый файл в цикле, и я перекомпилирую исполняемый файл во время работы скрипта. Гарантировано ли, что будущие итерации цикла вызовут новый исполняемый файл, и только результат вызова, который выполнялся при запуске коммутатора, может быть поврежден?
Моя ОС - это Linux, но мне также интересно, что происходит в Windows.
Какой язык и реализация? Для большинства компиляторов Common Lisp нет проблем с заменой исполняемого файла «на лету». Другие системы работают по-разному. –
Это исполняемый файл C++. Я не уверен, как это имеет значение для операционной системы, хотя ... – HighCommander4
Это делает разницу в том, что компиляция и выполнение являются совершенно разными шагами, и поэтому вопрос заключается в том, как ОС обрабатывает исполняемые файлы. –