1 #include <libgen.h> 2 #include <string.h> 3 dirname(char * s)4char* 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