1#include <libgen.h> 2#include <string.h> 3 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