#include #include char *dirname(char *s) { size_t i; if (!s || !*s) return "."; i = strlen(s)-1; for (; s[i]=='/'; i--) if (!i) return "/"; for (; s[i]!='/'; i--) if (!i) return "."; for (; s[i]=='/'; i--) if (!i) return "/"; s[i+1] = 0; return s; }