readdir() - Unix,Linux系统调用
Tutorials Point


  Unix初学者指南
  Unix Shell编程
  高级Unix
  Unix有用参考
  Unix有用资源
  精选阅读

版权所有 © 2014 tutorialspoint



  首页     参考文献     讨论论坛     关于TP  

readdir() - Unix,Linux系统调用


previous next AddThis Social Bookmark Button

广告

名称

readdir - 读取目录项

概要

#include <linux/types.h> 
#include <linux/dirent.h> 

int readdir(unsigned int fd, struct dirent *dirp, unsigned int count);

描述

这不是您感兴趣的函数。请查看readdir(3)以了解符合POSIX标准的C库接口。此页面记录了裸内核系统调用接口,该接口可能会更改,并且已被getdents(2)取代。

readdir() 从fd指向的目录中读取一个dirent结构,并将该结构写入dirp指向的内存区域。参数count被忽略;最多读取一个dirent结构。

dirent结构声明如下:

struct dirent
{
    long d_ino;                 /* inode number */
    off_t d_off;                /* offset to this dirent */
    unsigned short d_reclen;    /* length of this d_name */
    char d_name [NAME_MAX+1];   /* filename (null-terminated) */
}

d_ino是inode编号。d_off是从目录开头到此dirent的距离。d_reclend_name的大小,不包括空终止符。d_name是空终止的文件名。

返回值

成功时,返回1。到达目录末尾时,返回0。出错时,返回-1,并相应地设置errno

错误

标签描述
EBADF 无效的文件描述符fd
EFAULT 参数指向调用进程的地址空间之外。
EINVAL 结果缓冲区太小。
ENOENT 没有这样的目录。
ENOTDIR
 文件描述符不是指向目录。

符合标准

此系统调用是Linux特有的。

备注

Glibc不提供此系统调用的包装器;请使用syscall(2)调用它。

参见



previous next Printer Friendly

广告


  

广告



广告