目录
- 目录概述
- 相关操作函数
- 相关数据结构体说明
目录概述
- 什么是目录?
- 在linux操作系统中其实目录也是一种文件,相对于普通文件,它的存储内容不同,它的存储内容主要是当前目录下的文件以及子目录文件信息。
- 目录就像是一颗大树,从根处分开很多分支,Linux 系统中所有文件都存在根目录下,根目录以 “/” 表示。而关于目录的操作主要有打开,遍历和关闭等。
目录相关操作
DIR * opendir(const char * name);
struct dirent * readdir(DIR * dir);
int closedir(DIR *dir);
int mkdir(const char * pathname,mode_t mode);
int rmdir(const char * dirname);
int remove(const char * pathname);
int rename(const char * oldpath,const char * newpath);
文件目录操作函数参考
1.打开文件
函数名 | opendir |
---|---|
头文件 | #include<sys/types.h>#include<dirent.h> |
函数原型 | DIR * opendir(const char * name); |
功能 | 打开 name 指定的目录 |
参数说明 | 1.name:要操作的目录名; 2. DIR * 详细内容请查看相关数据结构体说明部分 |
返回值 | 成功,返回DIR* 目录流,否则返回NULL,并将错误码存放于errno 里 |
2.关闭目录
函数名 | closedir |
---|---|
头文件 | #include<sys/types.h> #include<dirent.h> |
函数原型 | int closedir(DIR *dir); |
功能 | 关闭参数dir所指的目录流 |
参数说明 | dir:要操作的目录流指针; |
返回值 | 成功,返回0,失败返回-1,并将错误码放入 errno |
3.遍历目录
函数名 | readdir |
---|---|
头文件 | #include<sys/types.h> #include<dirent.h> |
函数原型 | struct dirent * readdir(DIR * dir); |
功能 | 遍历文件目录 |
参数说明 | dir:要操作的目录流指针; struct dirent * 详见相关数据结构体说明部分 |
返回值 | 成功:用于描述一个目录项信息的指针,隐藏的位置指针会指向下一个目录项 错误发生或读取到目录尾则返回NULL并将错误码存入 errno 中 |
4.创建目录
函数名 | mkdir |
---|---|
头文件 | #include<sys/types.h> #include<sys/stat.h> |
函数原型 | int mkdir(const char * pathname,mode_t mode); |
功能 | 创建一个目录 |
参数说明 | 1.pathname:要创建的目录名; 2.mode:目录的操作权限: |
返回值 | 成功:返回0 出错:返回 -1,并将错误码存入 errno 中 |
5.删除空目录
函数名 | rmdir |
---|---|
头文件 | #include <unistd.h> |
函数原型 | int rmdir(const char * dirname); |
功能 | 删除一个空目录 |
参数说明 | dirname:要操作的目录名; |
返回值 | 成功:返回0 出错:返回 -1,并将错误码存入 errno 中 |
6.删除目录
函数名 | remove |
---|---|
头文件 | #include <stdio.h> |
函数原型 | int remove(const char * pathname); |
功能 | 删除一个文件或者目录,当pathname为一个文件则调用unlink来删除,如果是一个目录,则调用rmdir 来删除。 |
参数说明 | pathname:要操作的文件或者目录名; |
返回值 | 成功:返回0 出错:返回 -1,并将错误码存入 errno 中 |
7.更名目录
函数名 | rename |
---|---|
头文件 | #include <stdio.h> |
函数原型 | int rename(const char * oldpath, const char * newpath); |
功能 | 重命名一个文件或者目录,如果oldpath 和 newpath 所指向的路径不是同一级目录,就移动文件 |
参数说明 | 1.oldpath:要更名的文件或者目录名; 2.newpath:更名后的文件或者目录名 注意:如果oldpath指定的是一个目录,在newpath所指向的目录要么不存在,要么是个空目录 |
返回值 | 成功:返回0 出错:返回 -1,并将错误码存入 errno 中 |
相关数据结构体说明