Linux C目录操作
宗旨:技术的学习是有限的,分享的精神是无限的。
Linux思想“一切皆文件”,目录也是文件,只是存储的内容有别于普通文件。目录文件中存储的该目录下所有的文件及子目录文件的信息,inode节点。
一、打开/关闭目录文件
1、
opendir
——打开目录
(1)函数原型
#include
DIR *opendir(const char *dirname);
(2)函数参数
dirname:要打开的目录路径
(3)返回值
执行成功返回一个目录流指针(与文件流类似,直接用就行),失败返回NULL。
2、 closedir
——关闭指定的目录流
(1)函数原型
#include
int *closedir(DIR *stream);
(2)函数参数
stream:目录流指针(类似于文件流指针fp一样)
(3)返回值
执行成功返回0,执行失败返回-1。
这两函数操作的对象DIR对用户层是透明,不必关心其实现细节。
【typedef struct dirstream DIR】
二、读/写目录内容
1、 readdir
——读取目录内容(目录下存储的是该目录下的文件名和对应的磁盘inode信息位置,读取目录内容就是读取该目录下的文件名及文件信息。)
(1) 函数原型
struct dirent *readdir(DIR *stream)
struct dirent
{
long d_ino; // inode值
off_t d_off; //从目录开始到当前目录条的距离
unsigned shortd_reclen; // 存储文件名的空间大小
unsigned char d_type; // 文件类型
char d_name[256]; // 文件名,’