版权所有 © 2014 tutorialspoint
#include <unistd.h> #include <linux/types.h> #include <linux/dirent.h> #include <linux/unistd.h> #include <errno.h> int getdents(unsigned int fd, struct dirent *dirp, unsigned int count);
int getdents(unsigned int fd, struct dirent *dirp, unsigned int count);
系统调用getdents() 从fd指向的目录读取多个dirent结构到dirp指向的内存区域。参数count是内存区域的大小。
dirent结构声明如下:
struct dirent { long d_ino; /* inode number */ off_t d_off; /* offset to next dirent */ unsigned short d_reclen; /* length of this dirent */ char d_name [NAME_MAX+1]; /* filename (null-terminated) */ }
d_ino是inode编号。d_off是从目录开始到下一个dirent开始的距离。d_reclen是整个dirent的大小。d_name是空终止的文件名。
此调用取代了readdir(2)。
readdir (2)
广告