随着 Ubuntu 24.10 切换到基于
tmpfs
(即内存中)的 /tmp
,拥有一个不比内存大甚至比内存小的 /tmp
将会变得很多比较常见。
tmpfile()
提供的临时文件中。通常我这样做因为我认为将数据保存在内存中是不合适的。有时我什至可能知道,或者至少强烈怀疑,我的数据太大而无法保存在内存中,并且我可能会尝试将其存储在磁盘上,而不是将内存使用率保持在可接受的水平。
但是,如果我的软件要运行的许多系统现在返回
/tmp
,因此默认的tmpfile()
内存位置,通过tmpfile()
的默认值将已知大于内存的数据放入磁盘的策略存储位置不再起作用。如果我的数据大于内存,我需要告诉 tmpfile()
将其放在哪里。
所以我的问题是:目标 Linux 的应用程序应该在哪里存储预计大于内存的临时文件? 是否应该将已知的大文件实际放入例如
$XDG_CACHE_HOME
?或者其他地方?还是XDG需要添加新的目录类型?
面向 Linux 的应用程序应该在哪里存储预计大于内存的临时文件?不幸的是,存储此类文件的“正确”位置必须由了解您的应用程序要求的系统管理员确定。
我建议您默认为
/var/tmp/app-name
(或者
/var/{cache,lib,spool}/app-name
之一,如果这些更合适),并明确配置和记录该位置。 选择您的临时文件策略 - (
mkdtemp/mkostemp
?maildir?) - 并完成它。