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