opendir:打开目录
打开目录并不意味着切换目录
#include <sys/types.h>
#include <dirent.h>
DIR *opendir(const char *name);
name:需要打开的目录路径
返回值:
成功:目录流指针
失败:NULL
chdir:切换目录
切换的是程序内部的路径,不是实际的路径
#include <unistd.h>
int chdir(const char *path);
path:需要切换的那个目录的路径
返回值:
成功:0
失败:-1
readdir:读取目录下的内容
光标会自动往后移
#include<dirent.h>
struct dirent *readdir(DIR *dirp)
dirp:目录流指针
返回值:
成功:结构体指针(每读取一个目录项都会返回一个结构体指针,来代表一个项的属性)
struct dirent
{
ino_t d_ino; //索引号
off_t d_off; //偏移量
unsignen short d_reelcn; //记录文件名长度
unsigned char d_type; //文件类型
char d_name[256] //文件名
}
文件类型:
DT_BLK This is a block device. 块设备文件 宏定义为 6
DT_CHR This is a character device. 字符设备文件 宏定义为 2
DT_DIR This is a directory. 目录文件 宏定义为 4
DT_FIFO This is a named pipe (FIFO). 管道文件 宏定义为 1
DT_LNK This is a symbolic link. 链接文件 宏定义为 10
DT_REG This is a regular file. 普通文件 宏定义为 8
DT_SOCK This is a UNIX domain socket. 套接字文件 宏定义为 12
文件名:
文件名最多可以设置256个字符
closedir:关闭目录
#include<sys/types.h>
#include<dirent.h>
int closedir(DIR *dirp)
dirp:文件流指针
返回值:
成功:0
失败:-1
rewinddir:重置目录指针
#include <sys/types.h>
#include <dirent.h>
void rewinddir(DIR *dirp);