<分区>
假设我编译了一些代码并让它运行。完成需要 10 分钟。
与此同时,如果我更改代码中的一些参数并使用单独的终端窗口再次编译它并运行它(所以现在有两个程序使用相同的代码同时运行),第二次运行会影响第一次运行吗程序作为第一个编译输出被第二个编译输出替换?
标签 c++ linux compilation
<分区>
假设我编译了一些代码并让它运行。完成需要 10 分钟。
与此同时,如果我更改代码中的一些参数并使用单独的终端窗口再次编译它并运行它(所以现在有两个程序使用相同的代码同时运行),第二次运行会影响第一次运行吗程序作为第一个编译输出被第二个编译输出替换?
最佳答案
存在三种可能的情况:
在 Windows 上,可执行文件在执行时将被锁定以进行写入和删除,因此构建将失败。
在 Linux 上,可执行文件在执行时不需要保护不被修改或删除。
2.1。如果从文件系统中删除一个文件,然后创建一个具有相同名称的新文件,那么旧文件内容将仍然存在,直到已经运行的可执行文件退出,而新的可执行文件将使用新文件。因此,旧的可执行文件将继续正常运行,而新的可执行文件也将准备好运行。
2.2。如果打开文件进行写入并用新内容覆盖,则已经运行的可执行文件将使用新的机器代码,这很可能与现有程序状态不兼容,并会导致崩溃。
关于c++ - 是否可以同时运行相同的 C++ 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70293264/