1 #include <libgen.h>
2 #include <string.h>
3 
dirname(char * s)4 char* dirname(char* s) {
5     size_t i;
6     if (!s || !*s)
7         return (char*)".";
8     i = strlen(s) - 1;
9     for (; s[i] == '/'; i--)
10         if (!i)
11             return (char*)"/";
12     for (; s[i] != '/'; i--)
13         if (!i)
14             return (char*)".";
15     for (; s[i] == '/'; i--)
16         if (!i)
17             return (char*)"/";
18     s[i + 1] = 0;
19     return s;
20 }
21