如何在MAC Xcode C++中获取当前用户临时文件夹的路径

acruukt9  于 2023-02-09  发布在  Mac
关注(0)|答案(2)|浏览(299)

我正在使用C++在Xcode上开发一个控制台应用程序(命令行工具)。
如何获取当前用户临时文件夹的路径。
基本上,我想在用户临时文件夹中创建一个文本文件的MAC OS 10.8。

1hdlvixo

1hdlvixo1#

参见getenv(“TMPDIR”)
如果它返回所需的路径。
这是一个包含所有env变量的列表。
https://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man7/environ.7.html#//apple_ref/doc/man/7/environ
您可以使用mktemp在临时目录https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/mktemp.3.html中创建文件

bqf10yzr

bqf10yzr2#

使用confstr()获取临时目录(系统在3天后删除未访问的文件)和该高速缓存目录(系统不会删除文件)。

% cat confstr.c 
#include <unistd.h>
#include <stdio.h>
#include <sys/syslimits.h>

int main() {
    char buf[PATH_MAX];
    size_t len = PATH_MAX;
    size_t s = confstr(_CS_DARWIN_USER_TEMP_DIR, buf, len);
    printf("_CS_DARWIN_USER_TEMP_DIR(len:%d): %s\n", (int)s, buf);
    s = confstr(_CS_DARWIN_USER_CACHE_DIR, buf, len);
    printf("_CS_DARWIN_USER_CACHE_DIR(len:%d): %s\n", (int)s, buf);
    return 0;
}
% cc confstr.c -o confstr
% ./confstr     
_CS_DARWIN_USER_TEMP_DIR(len:50): /var/folders/hg/rprr5xfn1vsd17dbtzqttg640000gn/T/
_CS_DARWIN_USER_CACHE_DIR(len:50): /var/folders/hg/rprr5xfn1vsd17dbtzqttg640000gn/C/
% sudo ./confstr         
_CS_DARWIN_USER_TEMP_DIR(len:50): /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/
_CS_DARWIN_USER_CACHE_DIR(len:50): /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/C/

相关问题