str,它就可以工作。 struct stat st = {0}; GString* homedir = g_st-6ren">
gpt4 book ai didi

c - 为什么 mkdir 不适用于 GString?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:08 25 4
gpt4 key购买 nike

如果我只使用 "/home/user/.some/qwe" 而不是 homedir->str,它就可以工作。

struct stat st = {0};

GString* homedir = g_string_new(NULL);
g_string_append(homedir, getenv("HOME"));
g_string_append(homedir, ".some/qwe");

printf("%s", homedir->str);

if (stat(homedir->str, &st) == -1) {
int res= mkdir(homedir->str, 0777);
g_string_free(homedir, TRUE);
}

最佳答案

您可以通过使用 g_build_filename() 避免此错误并始终构建有效的路径名。 :

char *homedir = g_build_filename(getenv("HOME"), ".some", "qwe", NULL);
printf("%s, homedir);
if (stat(homedir, &st) == -1) {
int res = mkdir(homedir, 0777);
}
g_free(homedir);

关于c - 为什么 mkdir 不适用于 GString?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26769026/

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