2 * opendir/readdir/closedir
8 #include <sys/dirent.h>
11 #define __IO_DIR_DEFINED
16 struct dirent buffer[15]; /* 15 times max dirent size =~ 4K */
21 DIR *opendir(const char *name)
23 DIR *dp = malloc(sizeof(DIR));
28 dp->fd = open(name, O_DIRECTORY|O_RDONLY);
40 struct dirent *readdir(DIR *dir)
45 if ( !dir->bytes_left ) {
46 rv = getdents(dir->fd, dir->buffer, sizeof(dir->buffer));
50 dir->next = dir->buffer;
54 ((char *)dir->next) += dent->d_reclen;
55 dir->bytes_left -= dent->d_reclen;
60 int closedir(DIR *dir)