我必须使用哪种gtk方法在Ubuntu中获取临时路径?
如何在Ubuntu中获取临时目录路径?在大多数类似Unix的系统上,您需要查找我必须使用哪种gtk方法在Ubuntu中获取临时路径?,ubuntu,gtk,gnome,glib,Ubuntu,Gtk,Gnome,Glib,如何在Ubuntu中获取临时目录路径?在大多数类似Unix的系统上,您需要查找/tmp。如果这不是你想要的答案,你应该说明你在谈论Ubuntu的哪一部分 某些应用程序将允许您指定其临时文件的放置位置(例如使用TMP、TEMP或TMPDIR环境变量),但在UNIX下,如果/TMP不存在,许多内容将中断,因此使用它是安全的。如果要使其可配置,请在代码中,在以下完整程序中使用类似函数getTmpDir(): #include <stdio.h> #include <stdlib.h&
/tmp
。如果这不是你想要的答案,你应该说明你在谈论Ubuntu的哪一部分
某些应用程序将允许您指定其临时文件的放置位置(例如使用TMP
、TEMP
或TMPDIR
环境变量),但在UNIX下,如果/TMP
不存在,许多内容将中断,因此使用它是安全的。如果要使其可配置,请在代码中,在以下完整程序中使用类似函数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;
}
这几乎就是这个能说会道的电话所做的,尽管顺序可能不同
当然,如果您想使用特定于应用程序的环境变量,可以将其放在其他变量之前,因此:
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
。有一个环境变量TMPDIR可以设置临时目录的位置,大多数程序都尊重这一点,如果没有设置,它将默认为/tmp(或/var/tmp),而且似乎没有任何特定的UNIX接口来实现这一点
他们只是按顺序尝试:
TMPDIR
、TEMP
和TMP
/tmp
/var/tmp
/usr/tmp
$ tempfile | xargs dirname
/tmp
$ TMPDIR="/mnt/tmp" tempfile | xargs dirname
/mnt/tmp
是的,这就是我所期待的。我想使用gtk或glib以编程的方式获得路径,这是可行的。这是
/tmp
。它(尽管是虐待狂管理员)总是/tmp
。如果您是用C进行编码:char*tmpdir=“/tmp”
可以很好地完成:-)您可以影响某些应用程序(如bash
中的TMPDIR
变量),但是如果/tmp
不存在,很多事情都会中断。
$ tempfile | xargs dirname
/tmp
$ TMPDIR="/mnt/tmp" tempfile | xargs dirname
/mnt/tmp