C语言 在代码中处理二进制文件删除



假设我有下面的 C 代码,它无限接受输入并打印它。我使用 gcc 将其编译为二进制文件,例如测试。我在终端中执行此二进制文件,然后同时从另一个终端中删除此二进制文件。

有没有办法在代码中处理这种删除并退出正在执行的二进制文件?

#include <stdio.h>
int main(){
while(1){
// HANDLE BINARY FILE DELETION AND QUIT
char input[50];
scanf("%s",input);
printf("n%sn",input);
}
}

有没有办法在代码中处理这种删除并退出正在执行的二进制文件?

C 没有提供专门用于识别或响应正在运行的程序的磁盘映像上的操作的机制(如果存在这样的事情(。 您可以尝试通过argv[0]识别该文件(这不能保证成功(,并定期检查它。 您甚至可能会找到第三方库或系统特定的机制,用于注册以在修改或删除以这种方式发现的二进制文件时接收信号。 然而,这些都没有内置在 C 中。

某些操作系统可能会首先阻止此类删除,甚至提供您在操作系统级别描述的行为。 不过,总的来说,你的建议只是你不应该期望或依赖的事情。 程序的磁盘映像几乎与正在运行的进程是分开的。

最新更新