gpt4 book ai didi

ubuntu - 我必须使用哪种 gtk 方法来获取 Ubuntu 中的临时路径?

转载 作者:太空宇宙 更新时间:2023-11-03 16:46:54 27 4
gpt4 key购买 nike

如何在 Ubuntu 中获取临时目录路径?

最佳答案

在大多数类 Unix 系统上,您会寻找 /tmp。如果这不是您想要的答案,您应该指定 您正在谈论的 Ubuntu 的哪个部分。

某些应用程序将允许您指定放置临时文件的位置(例如使用 TMPTEMPTMPDIR 环境变量)但是如果 /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 环境中输出(我将 TEMPTMP 都设置为这个值):

Temporary directory =  /cygdrive/c/Users/Pax/AppData/Local/Temp

这几乎就是 GLib g_get_tmp_dir() 的内容call 确实如此,尽管顺序可能不同。

当然,如果你想使用特定于应用程序的环境变量,你可以将它放在其他变量之前:

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

关于ubuntu - 我必须使用哪种 gtk 方法来获取 Ubuntu 中的临时路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4790471/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com