我在Ubuntu 18.04上使用gcc-compiler。要编译并运行程序,请使用以下命令:
gcc program.c -o program.exe && ./program.exe
那么,如何在程序完成工作后自动删除此program.exe文件?
答案 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
是不寻常的。)