2011年8月16日 星期二

mkdir -p 的function

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>


// mkdir -p path
int open_file_with_dirs(const char *fn)
{
    char tmp[1024];
    int i = 0;

    while(*fn)
    {
        tmp[i] = *fn;
        if(*fn == '/' && i)
        {
            tmp[i] = '\0';
            if(access(tmp, F_OK) != 0)
            {
                if(mkdir(tmp, 0755) == -1)
                {
                    return -1;
                }
            }
            tmp[i] = '/';
        }
        i++;
        fn++;
    }
    tmp[i] = '\0';
    return 0;
}


int main (void)
{   open_file_with_dirs("/home/abcdef/aaa/");
    return 0;
}


結果:
建立 /home/abcdef/aaa/

ref:
Here

沒有留言:

張貼留言