#include <stdio.h>
int main(int argc, char *argv[])
{
printf("remove %s\n", argv[0]);
remove(argv[0]);
printf("rename %s to %s\n", argv[1], argv[2]);
rename(argv[1], argv[2]);
}
$g++ hello.cpp -o hello
$touch tmp
$./hello tmp temp
remove ./hello
rename tmp to temp
为什么可能?
最佳答案
至少在 Unix 中(包括 Linux 和 Mac OS X),如果你在有人打开文件时删除文件,我实际上不会消失,直到打开它的程序关闭文件或终止。
关于c - 为什么 C 程序可以删除自身然后运行另一个任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5480866/