我正在编写一个生成Python脚本的软件(C++)。这些应该去哪里暂时地现有脚本是否放置在文件系统中?
我读了几页有关文件系统层次结构标准的内容,但没有找到任何对生成脚本的引用。
/usr/bin 似乎不是一个好主意,因为它对于某些用户来说可能是只读的。我的想法是将它们放在 /var/run/my_program 下。
是这样吗?或者什么是“正确的地方”?
编辑: 这些脚本仅在创建程序运行时使用。这意味着他们不要必须经历重启。
答案1
临时文件的生命周期不超过创建它们的程序的生命周期,特别是不应该在重新启动后继续存在,请进入/tmp
。或者更确切地说,约定是使用环境变量指示的目录,如果未设置则TMPDIR
回退到该目录。/tmp
您可以执行/tmp
.虽然系统管理员可以在没有可执行权限的情况下安装它,但这将是仅运行特定应用程序的系统的强化配置:可以预见的是,阻止执行/tmp
会破坏某些应用程序,并且通常不会提高安全性。
请记住,此目录通常在用户之间共享,因此您在其中创建文件时需要小心,不要意外开始使用其他用户拥有的现有文件。使用mktemp
实用程序或mkstemp
函数,或者更好的是,使用以下方法创建私有临时目录mktemp
或者mkdtemp
并在该目录中工作。
/run
或/var/run
不合适,因为您可能没有在那里创建文件的权限(事实上,您将要除非得到系统管理员的授予,否则无权在那里创建文件)。它们供系统使用,而不是供应用程序使用。