在大多数类Unix系统上,你一直在寻找/ tmp.如果那不是您所追求的答案,那么您应该指定您正在谈论的Ubuntu.
某些应用程序将允许您指定其临时文件的放置位置(例如使用TMP,TEMP或TMPDIR环境变量)但是如果/ tmp不存在,很多东西会在UNIX下中断,因此使用它是安全的.如果你想让它可配置,在你的代码中,你可以在以下完整的程序中使用类似函数getTmpDir()的东西:
#include <stdio.h> #include <stdlib.h> const char *getTmpDir (void) { char *tmpdir; if ((tmpdir = getenv ("TEMP")) != NULL) return tmpdir; if ((tmpdir = getenv ("TMP")) != NULL) return tmpdir; if ((tmpdir = getenv ("TMPDIR")) != NULL) return tmpdir; return "/tmp"; } int main(void) { const char *xyzzy = getTmpDir(); printf ("Temporary directory = %s\n",xyzzy); return 0; }
哪个输出,在我的CygWin环境中(我将TEMP和TMP都设置为此值):
Temporary directory = /cygdrive/c/Users/pax/AppData/Local/Temp
这几乎就是GLib g_get_tmp_dir()
调用的功能,尽管可能采用不同的顺序.
当然,如果您想使用特定于应用程序的环境变量,您可以将其放在其他环境变量之前:
const char *getTmpDir (void) { char *tmpdir; if ((tmpdir = getenv ("XYZZY_TMP")) != NULL) return tmpdir; if ((tmpdir = getenv ("TEMP")) != NULL) return tmpdir; if ((tmpdir = getenv ("TMP")) != NULL) return tmpdir; if ((tmpdir = getenv ("TMPDIR")) != NULL) return tmpdir; return "/tmp"; }
甚至可以取出一些或所有“标准”的.但是如果用户没有配置任何东西,你几乎应该总是回到/ tmp.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。