在Kernighan和Ritchie 的第二版"The C Programming Language"中,他们实现了UNIX命令的简化版本ls(第8.6节"示例 - 列表目录",第179页).为此,它们创建以下接口,该接口提供对存储在目录中的文件的名称和inode编号的系统无关的访问.
#define NAME_MAX 14 /* longest filename component; */
/* system dependent */
typedef struct { /* portable director-entry */
long ino; /* inode number */
char name[NAME_MAX+1]; /* name + '\0' terminator */
} Dirent;
typedef struct { /* minimal DIR: no buffering, etc. */
int fd; /* file descriptor for directory */
Dirent d; /* the directory entry */
} DIR;
DIR *opendir(char *dirname);
Dirent *readdir(DIR …Run Code Online (Sandbox Code Playgroud)