http://linux.die.net/man/2/getdents
int getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int count);
fd指目录文件描述符。可以用sys_open创建。
dirp指目录信息,其大小由第3个参数指定,dirp在使用时注意先分配内存。
count 目录信息的大小。如果count指定的比较小,可以通过循环,反复获取接下来的dirp.
例子,
while(1) /* 如果count指定的比较小,这里就会反复获取目录的下半身 */
{
char pcbuf[1024];
int nRead = getdents(fd, pcbuf, 1024);
if(nRead == -1 ) /* 没有找到目录等错误 */
{
return ERR;
}
else if(nRead == 0) /* 读到目录结尾*/
{
break;
}
/* 操作pcbuf内容 */
}