基本概念
Linux中的目录与windows的文件夹相似但是概念大相径庭,windows中子文件一定不会比母文件夹大,但在Linux目录中是可以实现的,目录是一种文件索引表,下图是分区和目录的关系
Linux中目录是一组由文件名和索引号组成的索引表,目录下的文件的真正内容存储再分区中的数据域区域,目录中索引的每一项都被称为“目录项”,里面至少存放一个名字(不含路径)+索引号(分区唯一),当我们访问某一个文件的时候就是根据名字找索引号,再在i-node节点域中查找到对应的节点
相关API
用法举例:
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <strings.h>
#include <stdlib.h>
#include <stdbool.h>
#include <errno.h>
#include <dirent.h>
int main(int argc, char const *argv[])
{
DIR *dp = opendir("./src");
struct dirent *ep = NULL;
while(1)
{
ep = readdir(dp);
if(ep == NULL)
break;
printf("%s ",ep->d_name);
}
printf("\n");
return 0;
}