blob: ed885a5f0ef95150393369f97476453fb137b0b6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include "dietdirent.h"
#include <unistd.h>
#include <dirent.h>
#include <stdlib.h>
struct dirent* readdir(DIR *d) {
if (!d->num || (d->cur += ((struct dirent*)(d->buf+d->cur))->d_reclen)>=d->num) {
int res=getdents(d->fd,(struct dirent*)d->buf,sizeof (d->buf)-1);
if (res<=0) return 0;
d->num=res; d->cur=0;
}
return (struct dirent*)(d->buf+d->cur);
}
|