【发布时间】:2023-11-23 09:07:01
【问题描述】:
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
int main(int argc, const char *argv[])
{
char* original_path = "/home/userxxx/somedir/newdir";
if (mkdir(original_path,0777) == -1) {
perror(argv[0]);
exit(EXIT_FAILURE);
}
return 0;
}
请记住,这不是系统调用,所以我不能使用-p来创建父目录,我必须使用posix函数,如果它们不存在,它也应该创建父目录和中间目录。
【问题讨论】:
-
一个直接的答案是通过遍历路径来创建所有不存在的目录。
-
也许先创建父目录?
-
请注意,代码中实际使用的
mkdir(2)“系统调用”和接受-p但不是系统调用的mkdir(1)工具的“system()调用”之间有很好的区别.