add path impl for linux
This commit is contained in:
parent
ab099339b2
commit
e42a53786a
44
fs_linux.c
Normal file
44
fs_linux.c
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* fs_linux.c
|
||||||
|
*
|
||||||
|
* Created on: 20.10.2017
|
||||||
|
* Author: julian
|
||||||
|
*/
|
||||||
|
#include "fs.h"
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
void create_path(struct path * p, const char * fsPath) {
|
||||||
|
free_path(p);
|
||||||
|
|
||||||
|
const char *start = fsPath, *current = fsPath;
|
||||||
|
|
||||||
|
if (*start == '/') {
|
||||||
|
// absolute path
|
||||||
|
p->absolute = 1;
|
||||||
|
current = ++start;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (;*current != '\0'; ++current) {
|
||||||
|
if (*current == '/') {
|
||||||
|
p->entries = realloc(p->entries, sizeof(p->entries[0]) * (p->len+1));
|
||||||
|
p->entries[p->len] = strndup(start, current-start);
|
||||||
|
|
||||||
|
// skip delimiter
|
||||||
|
start = current+1;
|
||||||
|
p->len++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (start != current) {
|
||||||
|
p->entries = realloc(p->entries, sizeof(p->entries[0]) *(p->len+1));
|
||||||
|
p->entries[p->len] = strdup(start);
|
||||||
|
p->len++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FILE * path_fopen(struct path * p, const char * flags) {
|
||||||
|
// reconstruct system path
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user