在Windows上,为什么不能覆盖正在运行的应用程序的可执行文件?

珀尔帖

在linux系统上,这完全没有问题:exe在启动时会被加载到ram中。然后,文件可以消失,移动等,而无需任何交互。

在Windows上似乎并非如此。有这种现象的原因吗?

ᴇcʜιᴇ007

从StackOverflow的锁定执行文件中:Windows可以,Linux可以。为什么?

来自Oren Shemesh回答

Linux具有引用计数机制,因此您可以在文件执行时删除它,并且只要某些进程(先前打开过该文件)具有打开的句柄,该文件就会继续存在。该文件的目录条目在删除时将被删除,因此无法再打开它,但是已经在使用此文件的进程仍可以使用它。一旦使用此文件的所有进程终止,该文件将被自动删除。

Windows没有此功能,因此它被迫锁定文件,直到从该文件执行的所有进程完成为止。

从佩里·洛里尔(Perry Lorier)的答案中

Linux确实会锁定文件。如果您尝试覆盖正在执行的文件,则会得到“ ETXTBUSY”(文本文件繁忙)。但是,您可以删除该文件,并且在删除对该文件的最后一个引用后,内核将删除该文件。(如果未彻底关闭计算机,则在检查文件系统时,这些文件是“删除的inode的d时间为零”消息的原因,它们没有被完全删除,因为正在运行的进程已经引用了它们,现在他们是。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我们不能删除正在运行的可执行文件

来自分类Dev

覆盖正在运行的可执行文件或.so

来自分类Dev

XORing可执行文件时,为什么我的XOR程序不能在Windows上运行

来自分类Dev

Windows在运行时删除make可执行文件。为什么?

来自分类Dev

删除正在运行的可执行文件

来自分类Dev

如何运行可执行文件(应用程序/ x-可执行文件)?

来自分类Dev

AIX:更改正在运行的程序的可执行文件

来自分类Dev

自动测试应用程序可执行文件(基于Windows的应用程序)

来自分类Dev

为什么在运行可执行文件时需要在前面添加./?

来自分类Dev

如果我们可以在64位Windows上运行32位可执行文件,为什么不能转换它?

来自分类Dev

如果我们可以在64位Windows上运行32位可执行文件,为什么不能将其转换?

来自分类Dev

为什么退出应用程序后,SYSTEM会继续锁定可执行文件句柄?

来自分类Dev

为什么运行“错误”的可执行文件?

来自分类Dev

如何从打包的Electron应用程序运行可执行文件

来自分类Dev

Windows:从Store安装的应用程序的可执行文件在哪里?

来自分类Dev

如何将Windows .exe转换为macOS可执行文件/应用程序?

来自分类Dev

从 C# 可执行文件启动 Windows 10 Store 应用程序

来自分类Dev

将 Kivy 应用程序编译为 Windows 可执行文件

来自分类Dev

在HPUX上,如何列出所有正在运行的进程的可执行文件的完整路径?

来自分类Dev

在solaris上如何以编程方式获取正在运行的进程的可执行文件的完整路径?

来自分类Dev

指定的任务可执行文件“ cmd.exe”无法运行。指定的可执行文件不是此OS平台的有效应用程序

来自分类Dev

正在运行的可执行文件:无此类文件或目录

来自分类Dev

如何确定您正在运行最新的可执行文件?

来自分类Dev

PHP检查可执行文件是否正在运行

来自分类Dev

PowerShell查找当前正在运行的主机的路径(PowerShell可执行文件)

来自分类Dev

午夜指挥官:用户正在运行命令或脚本/可执行文件

来自分类Dev

如何获取Linux中正在运行的进程的完整可执行文件名

来自分类Dev

查找*可执行文件位于当前正在运行的进程的位置

来自分类Dev

如何知道正在运行的可执行文件的路径?

Related 相关文章

  1. 1

    为什么我们不能删除正在运行的可执行文件

  2. 2

    覆盖正在运行的可执行文件或.so

  3. 3

    XORing可执行文件时,为什么我的XOR程序不能在Windows上运行

  4. 4

    Windows在运行时删除make可执行文件。为什么?

  5. 5

    删除正在运行的可执行文件

  6. 6

    如何运行可执行文件(应用程序/ x-可执行文件)?

  7. 7

    AIX:更改正在运行的程序的可执行文件

  8. 8

    自动测试应用程序可执行文件(基于Windows的应用程序)

  9. 9

    为什么在运行可执行文件时需要在前面添加./?

  10. 10

    如果我们可以在64位Windows上运行32位可执行文件,为什么不能转换它?

  11. 11

    如果我们可以在64位Windows上运行32位可执行文件,为什么不能将其转换?

  12. 12

    为什么退出应用程序后,SYSTEM会继续锁定可执行文件句柄?

  13. 13

    为什么运行“错误”的可执行文件?

  14. 14

    如何从打包的Electron应用程序运行可执行文件

  15. 15

    Windows:从Store安装的应用程序的可执行文件在哪里?

  16. 16

    如何将Windows .exe转换为macOS可执行文件/应用程序?

  17. 17

    从 C# 可执行文件启动 Windows 10 Store 应用程序

  18. 18

    将 Kivy 应用程序编译为 Windows 可执行文件

  19. 19

    在HPUX上,如何列出所有正在运行的进程的可执行文件的完整路径?

  20. 20

    在solaris上如何以编程方式获取正在运行的进程的可执行文件的完整路径?

  21. 21

    指定的任务可执行文件“ cmd.exe”无法运行。指定的可执行文件不是此OS平台的有效应用程序

  22. 22

    正在运行的可执行文件:无此类文件或目录

  23. 23

    如何确定您正在运行最新的可执行文件?

  24. 24

    PHP检查可执行文件是否正在运行

  25. 25

    PowerShell查找当前正在运行的主机的路径(PowerShell可执行文件)

  26. 26

    午夜指挥官:用户正在运行命令或脚本/可执行文件

  27. 27

    如何获取Linux中正在运行的进程的完整可执行文件名

  28. 28

    查找*可执行文件位于当前正在运行的进程的位置

  29. 29

    如何知道正在运行的可执行文件的路径?

热门标签

归档