工作目录
-
工作目录指的是当前进程所在的目录,它是相对路径的起点,在操作文件时,如果没有提供文件的绝对路径信息,那么会操作工作目录下的文件,一般默认下工作目录就是当前进程的目录
char *getcwd(char *buf, size_t size); 功能:获取当前进程的工作路径,相当于命令 pwd int chdir(const char *path); int fchdir(int fd); 功能:修改工作路径,相当于cd
创建、删除、读取目录
int mkdir(const char *pathname, mode_t mode); 功能:创建空白目录 mode:目录的权限,目录必须有执行权限次才能进入 int rmdir(const char *pathname); 功能:删除目录,只能删除空白目录 int chdir(const char *path); int fchdir(int fd); 功能:修改工作路径,相当于cd DIR *opendir(const char *name); DIR *fdopendir(int fd); 功能:打开目录文件 返回值:成功返回目录流指针,失败返回NULL struct dirent *readdir(DIR *dirp); 功能:从目录流对象中读取一条条目信息 注意:读取完一条条目后,会自动的往后移动,只需要再次调用该函数,即可以读下一条目录 返回值:返回该条目录信息的结构指针或者NULL(读取失败或者读到了目录末尾结束) 结构体 struct dirent里面存储了目录中某个文件的信息 struct dirent { ino_t d_ino; /* inode节点号*/ off_t d_off; /* 下一条条目的偏移量 注意是磁盘偏移量,而非内存地址*/ unsigned short d_reclen; /* 当前条目的长度 */ unsigned char d_type; /* 文件类型 */ char d_name[256]; /* 文件名 */ }; d_type的取值: DT_BLK 块设备文件 DT_CHR 字符设备文件 DT_DIR 目录 DT_FIFO 管道文件 DT_LNK 软链接文件 DT_REG 普通文件 DT_SOCK socket文件 DT_UNKNOWN 未知 void rewinddir(DIR *dirp); 功能:复位目录流,设置目录流的位置指针回到开头 long telldir(DIR *dirp); 功能:获取当前目录流的位置 void seekdir(DIR *dirp, long loc); 功能:设置目录流的读取位置,这样可以进行任意条目的获取 int closedir(DIR *dirp); 功能:关闭目录文件