当前位置: 技术问答>linux和unix
请问一个格式化输出问题
来源: 互联网 发布时间:2016-02-05
本文导语: 语句大概是这样: DIR *dir; struct dirent *entry; while((entry = readdir(dir)) != NULL) { ....... } 当中entry = readdir(dir)是不是返回参数dir目录流的下个目录进入点,从而形成循环?如果不是这样解释,应该怎么来解释这个循...
语句大概是这样:
DIR *dir;
struct dirent *entry;
while((entry = readdir(dir)) != NULL)
{
.......
}
当中entry = readdir(dir)是不是返回参数dir目录流的下个目录进入点,从而形成循环?如果不是这样解释,应该怎么来解释这个循环语句里的条件呢?谢谢
DIR *dir;
struct dirent *entry;
while((entry = readdir(dir)) != NULL)
{
.......
}
当中entry = readdir(dir)是不是返回参数dir目录流的下个目录进入点,从而形成循环?如果不是这样解释,应该怎么来解释这个循环语句里的条件呢?谢谢
|
readdir(dir)是从一个目录项流里读取一个目录项,并使流指针指向下一个目录项.
文件或目录是根据目录项内内容来判断的.这个目录项是文件还是目录,还是设备,链接等等,都由该目录项
内的一个数据位来标识.
这和你使用fgets读去一行数据一样.在读取后你并不知道数据的内容是什么,而是要等分析后此能知道.
文件系统的的结构:
目录也是一种特殊的文件,文件内有一个一个的记录,其记录就是目录项.
找文件时,先找到文件的目录项,再从目录项内找到文件的inode,inode是和文件一一对应的,记录了文件的
大小,位置等信息.但目录项和inode不是一一对应的,有可能几个目录项对应一个inode.如链接文件.它只是启目录项指向另一个文件的inode而已.
该目录项也有可能是目录,如果是目录,指向的是另一个目录文件的inode.
也有文件只有目录项而没有实际指向的inode,如无名管道.
文件或目录是根据目录项内内容来判断的.这个目录项是文件还是目录,还是设备,链接等等,都由该目录项
内的一个数据位来标识.
这和你使用fgets读去一行数据一样.在读取后你并不知道数据的内容是什么,而是要等分析后此能知道.
文件系统的的结构:
目录也是一种特殊的文件,文件内有一个一个的记录,其记录就是目录项.
找文件时,先找到文件的目录项,再从目录项内找到文件的inode,inode是和文件一一对应的,记录了文件的
大小,位置等信息.但目录项和inode不是一一对应的,有可能几个目录项对应一个inode.如链接文件.它只是启目录项指向另一个文件的inode而已.
该目录项也有可能是目录,如果是目录,指向的是另一个目录文件的inode.
也有文件只有目录项而没有实际指向的inode,如无名管道.