我必须使用哪种gtk方法在Ubuntu中获取临时路径?

如何在Ubuntu中获取临时目录路径
在大多数类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.

相关文章

目录前言一、创建Hadoop用户二、更新apt和安装Vim编辑器三、...
原文连接:https://www.cnblogs.com/yasmi/p/5192694.html ...
电脑重启后,打开VirtualBox,发现一直用的虚拟机莫名的消失...
参见:https://blog.csdn.net/weixin_38883338/article/deta...
Ubuntu 18.04 LTS 已切换到 Netplan 来配置网络接口。Netpla...
介绍每个 Web 服务都可以通过特定的 URL 在 Internet 上访问...