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