C语言 程序完成后如何删除.exe输出文件



我在 Ubuntu 18.04 中使用 gcc-compiler。要编译和运行程序,我使用命令:

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

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

这应该可以解决问题:

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

请不要说 Linux 中的二进制程序通常没有.exe扩展名(但没有什么能阻止你放置它,这只是有点误导(。

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

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

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

大多数可执行文件在某种程度上是永久性的,并且预计可以重用很多次。您需要记录为什么您不希望出现这种常见行为(并准确解释为什么、何时以及如何删除可执行文件(。

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

当然,如果你只是想在可执行文件完全运行删除它,你可以简单地使用 rm(1( (正如 blue112 的答案所解释的那样(。您应该解释为什么要(以及何时(要这样做(在执行./program后立即运行rm program是不寻常的(。

最新更新