微信网站制作入门,六安发布,怎么把网站封包做app,wordpress可以自己写代码吗1、基本概念 目录也是一种文件#xff0c;因此操作流程与普通文件类似#xff0c;有诸如打开、关闭、定位等概念#xff0c;但目录是一种特殊的文件#xff0c;目录存储的数据的最小单位并不是字符#xff0c;而是目录项。这使得目录跟普通文件又有区别。
在Linux中…1、基本概念 目录也是一种文件因此操作流程与普通文件类似有诸如打开、关闭、定位等概念但目录是一种特殊的文件目录存储的数据的最小单位并不是字符而是目录项。这使得目录跟普通文件又有区别。
在Linux中目录有几个要点
整个分区被分成两部分一部分称为i节点域另一部分称为数据域 i节点域记录的是整个分区的基本信息包括分区可用空间和已用空间的管理信息数据域存储文件实际内容数据目录所存储的数据单元是目录项目录项指的是结构体
struct dirent{}其内部保存的是文件的名称、i节点号等基本信息不包含文件具体内容。
// 目录项结构体
struct dirent
{ino_t d_ino; /* Inode number */编号off_t d_off; /* Not an offset; see below */unsigned short d_reclen; /* Length of this record */记录的长度unsigned char d_type; /* Type of file; not supported by all filesystem types */文件类型char d_name[256]; /* Null-terminated filename */文件名
};
任何一个目录至少包含两个目录项.和.. .代表当前目录..代表上一级目录如果本目录就是根目录那么..也代表本级目录 2、目录的创建与删除 int main(void)
{// 在家目录下创建一个空目录mkdir(/home/share/str, 0755);// 将空目录删除以下两条语句等价rmdir(/home/share/str);remove(/home/share/str);
}
3、目录的打开关闭与读取 注
与文件指针类似目录指针并不指向目录中的数据它仅仅是代表了目录 打开目录并不是进入目录实际上进入目录的函数是chdir() 读取目录获得的不是一个个的字节而是一个个“目录项”
#include stdio.h
#include sys/types.h
#include dirent.hint main(int argc,char *argv[])
{//打开目录argv[1],获取目录指针DIR *fdopendir(argv[1]);if(fdNULL)return 0;//读取每个目录项并输出各个文件的名字struct dirent *p;while (1){preaddir(fd);if (pNULL){printf(读完了\n);break;}printf(%s\n,p-d_name);}return 0;
}
输出