Linux:
struct dirent {
ino_t d_ino;
off_t d_off;
unsigned short d_reclen;
unsigned char d_type;
char d_name[256];
};
Mac:
struct dirent {
ino_t d_ino;
uint16_t d_reclen;
uint8_t d_type;
uint8_t d_namlen;
char d_name[__DARWIN_MAXNAMLEN + 1];
};
DIR* なんかはユーザコードに中身を触らせない設計になってるから素晴らしい