程序完成工作后如何删除.exe输出文件

时间:2018-09-06 14:56:49

标签: c linux

我在Ubuntu 18.04上使用gcc-compiler。要编译并运行程序,请使用以下命令:

gcc program.c -o program.exe && ./program.exe

那么,如何在程序完成工作后自动删除此program.exe文件?

2 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

gcc program.c -o program.exe && ./program.exe && rm program.exe

请不要感到通常Linux中的二进制程序没有.exe扩展名(但是没有什么可以阻止您使用它,这只是一个误导)。

您的rm可能是某个外壳alias。然后,您可以通过提供其(标准)路径rm(而不是上面的命令行中的/bin/rm)来强制实际的rm程序运行。

答案 1 :(得分:-1)

在Linux和Unix系统上,允许可执行文件在运行时自行删除(使用remove(3)unlink(2))。我举了一个例子here。但这是不常见的做法(可能会使您的用户感到困惑)。

因此,您可以使用显式unlink来编写C程序。这是不寻常,您应该记录在案。

大多数可执行文件在某种程度上都是永久性的,并且有望多次重用。您需要记录为什么不希望出现这种常见行为(并确切说明为什么,何时以及如何删除可执行文件)。

我建议使用所有警告和调试信息来编译可执行文件,因此建议使用gcc -Wall -g program.c -o program(以后可以通过添加-O2来进行优化)。这样可以简化调试。

当然,如果您只想在可执行文件 完全运行后删除,则可以简单地使用rm(1)(如blue112's answer所述)。您应该解释为什么(何时)这样做(在执行rm program之后立即运行./program是不寻常的。)