OPENDIR - Linux手册页
时间:2019-08-20 18:00:58 来源:igfitidea点击:
Linux程序员手册 第3部分
更新日期: 2017-09-15
名称
opendir,fdopendir-打开目录
语法
#include <sys/types.h> #include <dirent.h> DIR *opendir(const char *name); DIR *fdopendir(int fd);
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
fdopendir():
- Since glibc 2.10:
- _POSIX_C_SOURCE>= 200809L
- Before glibc 2.10:
- _GNU_SOURCE
说明
opendir()函数打开与目录名称相对应的目录流,并返回指向该目录流的指针。流位于目录中的第一项。
fdopendir()函数类似于opendir(),但返回打开文件描述符fd所引用目录的目录流。成功调用fdopendir()之后,fd由实现在内部使用,否则不应由应用程序使用。
返回值
opendir()和fdopendir()函数返回指向目录流的指针。错误时,将返回NULL,并正确设置了errno。
错误说明
- EACCES
- 没有权限。
- EBADF
- fd不是打开供读取的有效文件描述符。
- EMFILE
- 已达到打开文件描述符数量的每个进程限制。
- ENFILE
- 已达到系统范围内打开文件总数的限制。
- ENOENT
- 目录不存在,或者名称为空字符串。
- ENOMEM
- 内存不足,无法完成操作。
- ENOTDIR
- 名称不是目录。
版本
从2.4版开始,glibc中提供了fdopendir()。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
opendir(),fdopendir() | Thread safety | MT-Safe |
遵循规范
opendir()存在于SVr4、4.3BSD上,并在POSIX.1-2001中指定。 fdopendir()在POSIX.1-2008中指定。
备注
可以使用readdir(3)从目录流中读取文件名条目。
可以使用dirfd(3)获得目录流的基础文件描述符。
opendir()函数为DIR *底层的文件描述符设置close-on-exec标志。 fdopendir()函数使文件描述符fd的close-on-exec标志设置保持不变。 POSIX.1-200x不确定是否成功调用fdopendir()将为文件描述符fd设置执行时关闭标志。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。