1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
bool besure_path(const char *pathname) {
int len = strlen(pathname);
char buffer[len + 1];
memset(buffer, 0, sizeof(buffer));
strcpy(buffer, pathname);
for (int i = 0; i < len; ++i) {
if (buffer[i] == '/') {
buffer[i] = 0;
if (access(buffer, F_OK) < 0) {
if (mkdir(buffer, 0755) < 0) {
return false;
}
}
buffer[i] = '/';
}
}
return true;
}
|