dirname.c raw

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