recursive mkdir

/*
Recursively creates the given path, with the given mode

Returns: 0 on success and -1 on error
*/
int mkdirp(const char *dir, mode_t mode)
{
const char *p = dir + 1;

while(*p)
{
if(*p == '/')
{
*((char*)p) = '';

if(mkdir(dir, mode) == -1 && errno != EEXIST)
return -1;

*((char*)p) = '/';
}

p++;
}

if(*(p-1) != '/')
if(mkdir(dir, mode) == -1 && errno != EEXIST)
return -1;

return 0;
}
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s