READDIR - Linux手册页
时间:2019-08-20 17:59:13 来源:igfitidea点击:
Linux程序员手册 第2部分
更新日期: 2019-03-06
名称
readdir-读取目录条目
语法
int readdir(unsigned int fd, struct old_linux_dirent *dirp, unsigned int count);
注意:此系统调用没有glibc包装器。请参阅注释。
说明
这不是您感兴趣的功能。请查看readdir(3)以了解符合POSIX的C库接口。本页记录了裸内核系统调用接口,该接口已由getdents(2)取代。
readdir()从文件描述符fd引用的目录中读取一个old_linux_dirent结构到dirp指向的缓冲区中。参数计数被忽略;最多读取一个old_linux_dirent结构。
声明old_linux_dirent结构(在Linux内核文件fs / readdir.c中是私有的),如下所示:
struct old_linux_dirent { unsigned long d_ino; /* inode number */ unsigned long d_offset; /* offset to this old_linux_dirent */ unsigned short d_namlen; /* length of this d_name */ char d_name[1]; /* filename (null-terminated) */ }
d_ino是一个索引节点号。 d_offset是从目录开始到此old_linux_dirent的距离。 d_reclen是d_name的大小,不计算终止的空字节(aq \ 0aq)。 d_name是一个以空值结尾的文件名。
返回值
成功时,返回1。在目录末尾,返回0。如果出错,则返回-1,并正确设置errno。
错误说明
- EBADF
- 无效的文件描述符fd。
- EFAULT
- 参数指向调用过程的地址空间之外。
- EINVAL
- 结果缓冲区太小。
- ENOENT
- 没有这样的目录。
- ENOTDIR
- 文件描述符不引用目录。
遵循规范
此系统调用是特定于Linux的。
备注
Glibc没有为该系统调用提供包装器;使用syscall(2)调用它。您将需要自己定义old_linux_dirent结构。但是,可能应该改用readdir(3)。
此系统调用在x86-64上不存在。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。