我使用的程序在将tmpfile()用于大文件时失败。问题似乎是我无权在 /tmp 中创建大文件,该函数默认使用该文件。那么有没有一种方法,也许有一个环境变量,我可以让 tmpfile() 写入不同的位置?
编辑:有问题的程序是sox,它使用 C。
您可以使用环境变量 TMPDIR 来告诉 tmpfile() 在哪里创建文件:
sh 语法:
TMPDIR=/path/to/whatever; export TMPDIR
csh 语法:
setenv TMPDIR /path/to/whatever
鉴于man tmpfile (3)
您可能想要的信息:#define P_tmpdir "/somedir"
当然,这可能不太可靠。
您还可以将环境变量设置TMPDIR
为某个位置。