我想使用mkdir Posix函数创建一个目录,但父目录不存在,我应该怎么做?

时间:2016-10-17 12:28:08

标签: c linux posix mkdir

#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函数,如果它们不存在,还应该创建父目录和中间目录。

1 个答案:

答案 0 :(得分:0)

您可以使用递归技术解决此问题:伪代码

createFolder(folder)
{
    if folder.exists return // blocks the recursion
    createFolder(folder.parent)
    folder.makefolder // this will make a folder one level at a time
}

它具有吸引人的功能,即对存在的文件夹的函数调用是无操作。