Ank*_*wal 3 c linux filesystems operating-system mkdir
我想在新目录中创建一个新目录.像这样的东西:
#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");
}
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我收到此错误:
abc: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如果我删除testabc2然后我能够成功创建目录.为什么这样 ?
您只能在现有目录中创建目录.如果你想做mkdir -p相同的事情你必须做同样的事情,即从路径顶部向下创建一个接一个的目录.
在你的情况,这意味着mkdir中/home/abc/testabc1前mkdir的/home/abc/testabc1/testabc2.
您的错误消息也会产生误导,因为它perror("abc");会在"abc:"之前添加任何错误.它与目录"abc"无关.