Dav*_*rtz 12
真的没有重命名文件这样的事情。一个文件可以有多个名称或没有名称,因此您要重命名的不是文件而是目录条目。重命名是对目录项的操作,不受文件被锁定执行的影响。
它不允许删除可执行文件和 DLL,因为 Windows 将可执行文件的一部分映射到内存中作为进程创建的一部分,因此它在进程的生命周期内需要该文件。
不幸的是,我没有真正的理由为什么它仍然允许重命名此类文件。我想这样做是为了在运行时启用 dll 和 exe 文件的更新,以最大限度地减少服务中断时间。
相比之下,linux(一般为 unix)允许在运行时删除可执行文件:
tmp]$ cp /usr/bin/md5sum .;ll md5*; \
(./md5sum /home/pub/iso/FC5/FC-5-i386-DVD.iso & ); \
rm md5sum ; ll md5*;ps -f
-rwxr-xr-x 1 sergey sergey 37276 Oct 16 02:38 md5sum
ls: cannot access md5*: No such file or directory
UID PID PPID C STIME TTY TIME CMD
sergey 2423 2422 0 02:32 pts/1 00:00:00 -bash
sergey 2533 1 0 02:38 pts/1 00:00:00 ./md5sum /home/pub/iso/FC5/FC-5-
sergey 2536 2423 0 02:38 pts/1 00:00:00 ps -f
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5378 次 |
| 最近记录: |