Add implementation of mkdir_p

master
teknomunk 7 months ago
parent e133427bb7
commit ebdef40c7a

28
dir.c

@ -0,0 +1,28 @@
#include "dir.h"
#include <sys/stat.h>
#include <libgen.h>
#include <string.h>
void mkdir_p( char* buffer, int mode )
{
if( !*buffer || buffer[1] == '/' ) { return; }
struct stat s = {0};
dirname(buffer);
if( -1 == stat(buffer,&s) ) {
mkdir_p( buffer, mode );
}
buffer[strlen(buffer)] = '/';
mkdir( buffer, mode );
}
void util_dir_create_containing( const char* buffer, int mode )
{
int size = strlen(buffer);
char buffer2[size+1];
strncpy( buffer2, buffer, size+1 );
mkdir_p(dirname(buffer2), 0640 );
}

@ -0,0 +1,5 @@
#pragma once
void mkdir_p( char* buffer, int mode );
void util_dir_create_containing( const char* buffer, int mode );
Loading…
Cancel
Save