0
点赞
收藏
分享

微信扫一扫

GLib 库g_mkdir_with_parents - 创建多级父子目录

g_mkdir_with_parents 是 GLib 库中的一个函数,它用于创建目录,如果目录的父目录不存在,它也会创建父目录。这个函数的原型如下:

gint
g_mkdir_with_parents (const gchar *pathname, gint mode);

参数 pathname 是要创建的目录的路径,mode 是设置新创建目录的权限。

如果目录创建成功,或者目录已经存在,函数返回 0。如果发生错误,函数返回 -1,并且 errno 会被设置。

这个函数在 GLib 2.8 版本中引入,可以用于确保目录的存在,无论其父目录是否已经存在。

以下是一些使用 g_mkdir_with_parents 函数的代码示例:

  1. 创建一个目录,如果父目录不存在,则父目录也会被创建:

gchar *dir = g_build_filename(g_get_user_config_dir(), "myapp", NULL);
if (g_mkdir_with_parents(dir, 0700) == -1) {
    g_critical("Could not create directory \"%s\": %s", dir, strerror(errno));
    g_free(dir);
    return NULL;
}
g_free(dir);

  1. 在创建目录时设置权限:

g_mkdir_with_parents("/path/to/directory", 0755);

  1. 检查目录是否创建成功,并处理错误:

if (g_mkdir_with_parents("/path/to/directory", 0700) == -1) {
    g_warning("Failed to create directory: %s", strerror(errno));
}

这些示例展示了如何在实际应用中使用 g_mkdir_with_parents 函数来创建目录,并处理可能出现的错误。

举报

相关推荐

0 条评论