如何在Ubuntu中获取临时目录路径?
在大多数类Unix系统上,你一直在寻找/ tmp.如果那不是您所追求的答案,那么您应该指定您正在谈论的Ubuntu.
原文链接:https://www.f2er.com/ubuntu/349189.html某些应用程序将允许您指定其临时文件的放置位置(例如使用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.