#include // for DIR, closedir #include // for EBADF, errno #include // for __DIR #include // for free #include // for close int closedir(DIR *dirp) { struct __DIR *rdirp = (struct __DIR *)dirp; if (rdirp->fildes >= 0) { errno = EBADF; return -1; } close(rdirp->fildes); free(rdirp); return 0; }