这里有两个方面.第一种方法是清理临时文件,如果你的程序干净利落.为此,您不必重新发明轮子,只需使用核心模块File :: Temp.它可以做很多事情,它的一个好处是它可以在变量被垃圾回收时删除临时文件.
另一方面是如果发生真正的程序崩溃(例如kill -9).在这种情况下,您的程序无法处理清理本身.你必须依靠操作系统为你做这件事.例如,几个Linux发行版清理/tmp并/var/tmp定期清理.你也可以为你写一个帮助你的cron工作.
但请注意,并非所有Linux发行版都在/tmp(或/var/tmp)中清理.其他人只在启动过程中执行此操作.在机器运行时这样做可能会造成危险(程序仍在使用的文件可能会被意外删除).有像tmpreaper这样的工具可以帮助你.
如果你想要一个相当万无一失的方法,那么我建议你/tmp不要/var/tmp在其中一个下面使用你自己的子目录,而是使用像tmpreaper清理那个目录的工具.这样你就可以适当地确定只有程序的临时文件(而不是其他程序的临时文件)会受到清理的影响.