我想在新目录中创建一个新目录。像这样:
#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,那么我就能够成功创建目录。为什么这样?
答案 0 :(得分:5)
您只能在现有目录中创建目录。如果你想做相同的mkdir -p
,你必须做同样的事情,即从路径顶部创建一个接一个的目录。
在您的情况下,这意味着在mkdir
/home/abc/testabc1
之前mkdir
的{{1}}。
您的错误消息也具有误导性,因为/home/abc/testabc1/testabc2
将使用“abc:”添加任何错误。它与目录“abc”无关。