【问题标题】:set directory of tmpfile() on Linux在 Linux 上设置 tmpfile() 的目录
【发布时间】:2009-12-27 03:50:33
【问题描述】:

当我使用tmpfile() 处理大文件时,我使用的程序失败了。问题似乎是我无权在 /tmp 中创建大文件,该函数默认使用该文件。那么有没有一种方法可以让 tmpfile() 写入不同的位置?

编辑:有问题的程序是sox,它使用C。

【问题讨论】:

  • 您不太可能“没有在/tmp 中创建大文件的权限”。您更有可能已经填满了/tmp 分区。为什么不简单地增加/tmp 分区的大小?
  • 这是在我无法控制 /tmp 设置的共享服务器上

标签: linux posix tmp temporary-files


【解决方案1】:

您可以使用环境变量 TMPDIR 来告诉 tmpfile() 在哪里创建文件:

sh 语法:

TMPDIR=/path/to/whatever; export TMPDIR

csh 语法:

setenv TMPDIR /path/to/whatever

【讨论】:

【解决方案2】:

鉴于man tmpfile (3) 中的信息,您可能希望:#define P_tmpdir "/somedir" 当然,这可能不太可靠。

您还可以将环境变量 TMPDIR 设置为某个位置。

【讨论】:

  • my 预处理器宏将如何改变 C 库的功能?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-09
  • 2015-06-23
  • 2023-02-11
  • 2013-06-10
相关资源
最近更新 更多