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