gpt4 book ai didi

c - 递归创建嵌套目录的 C 中的 mkdir -p 等价物

转载 作者:太空狗 更新时间:2023-10-29 11:37:22 24 4
gpt4 key购买 nike

我想在新目录中创建一个新目录。像这样:

#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <errno.h>
#include <string.h>

int main() {

const char * path = "/home/abc/testabc1/testabc2" ;
mode_t mode = 0777;

if (mkdir(path, mode) == -1) {

// printf("Error occurred : %s ", strerror(errno));
perror("abc");

}

else {

printf("Directory created\n");
}


}

当我这样做时,我得到了这个错误:

abc: No such file or directory

如果我删除了 testabc2,那么我就能够成功地创建目录。为什么会这样?

最佳答案

您只能在现有目录中创建目录。如果您想执行与 mkdir -p 相同的操作,您必须执行与它相同的操作,即从路径顶部向下创建一个目录。

在您的情况下,这意味着 /home/abc/testabc1mkdir/home/abc/testabc1 的 mkdir 之前/testabc2.

您的错误消息也具有误导性,因为 perror("abc"); 将在任何 错误前加上“abc:”。它与目录“abc”无关。

关于c - 递归创建嵌套目录的 C 中的 mkdir -p 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26666680/

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