dirname.c 279 B

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