#include #include #include #include static char buf[sizeof (struct adirent) + PATH_MAX]; static struct adirent *one_adirent = (struct adirent *)buf; DIRENT * READDIR(DIR *dirp) { struct dirent *dp; /* Do a normal readdir on dirp. */ dp = readdir(dirp); if (dp == NULL) return (NULL); /* Copy members out of our dirent. */ one_adirent->d_ino = dp->d_ino; one_adirent->d_off = dp->d_off; one_adirent->d_reclen = (unsigned short)(sizeof (struct adirent)); strlcpy(one_adirent->d_name, dp->d_name, PATH_MAX); /* Set d_type to DT_UNKNOWN. */ one_adirent->d_type = DT_UNKNOWN; return (one_adirent); }