微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我必须使用哪种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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐