#include #define DIRMAXLEN 1024 char *dirname(char *p) { int l; char dir[DIRMAXLEN]; #ifdef __WIN32__ for(l = strlen(p); p[l] != '\\' && l > 0; l--); #else for(l = strlen(p); p[l] != '/' && l > 0; l--); #endif if(l >= DIRMAXLEN) { errno = ENAMETOOLONG; return NULL; } strncpy(dir, p, DIRMAXLEN) return dir; }