目录操作
int mkdir(const char *pathname, mode_t mode);
功能:创建目录
mode:目录的权限,注意必须要有执行权限,否则无法进入
int rmdir(const char *pathname);
功能:删除空目录
int chdir(const char *path);
功能:进入某个目录,相当于cd命令
char *getcwd(char *buf, size_t size);
功能:获取当前工作目录,相当于pwd命令
DIR *opendir(const char *name);
功能:打开目录文件,返回一个目录流
name:选择要打开的目录
struct dirent *readdir(DIR *dirp);
功能:从目录流中读取一条记录
struct dirent {
ino_t d_ino; // i节点号
off_t d_off; // 下一条条目的偏移量
unsigned short d_reclen; // 当前条目的长度
unsigned char d_type; // 文件类型
DT_BLK 块设备文件
DT_CHR 字符设备文件
DT_DIR 目录文件
DT_FIFO 管道文件
DT_LNK 链接文件
DT_REG 普通文件
DT_SOCK socket文件
DT_UNKNOWN 未知类型
char d_name[256]; // 文件名
};
练习1:实现 ls -l
void seekdir(DIR *dirp, long loc);
功能:设置目录流的位置指针,用于随机读取
</