1.目录操作
打开目录:
使用opendir()函数,传入目录名作为参数,成功时返回一个DIR*类型的目录流指针,失败时返回NULL。
读取目录:
使用readdir()函数,传入目录流指针作为参数,成功时返回一个指向dirent结构体的指针,该结构体包含了文件的信息(如文件名)。到达目录末尾或出错时返回NULL。
关闭目录:
使用closedir()函数,传入目录流指针作为参数,成功时返回0,失败时返回-1。
2.函数
1. opendir
DIR *opendir(const char *name);
功能:打开一个目录流,以便可以读取目录内容。
参数:name(const char *)- 要打开的目录的路径。
返回值:成功时返回一个指向DIR类型的指针,失败时返回NULL。
2. readdir
struct dirent *readdir(DIR *dirp);
功能:从opendir返回的目录流中读取一个目录项。
参数:dirp(DIR *)- 之前通过opendir获得的目录流指针。
返回值:成功时返回一个指向struct dirent的指针,该结构体包含了目录项的信息(如文件名)。如果到达目录末尾或出错,则返回NULL。
3. closedir
int closedir(DIR *dirp);
功能:关闭一个通过opendir打开的目录流。
参数:dirp(DIR *)- 要关闭的目录流指针。
返回值:成功时返回0,失败时返回-1。
4. chdir
int chdir(const char *path);
功能:改变当前进程的工作目录。
参数:path(const char *)- 新的工作目录路径。
返回值:成功时返回0,失败时返回-1。
5. getcwd
char *getcwd(char *buf, size_t size);
功能:获取当前工作目录的绝对路径。
参数:buf(char *)- 用于存储路径的缓冲区,size(size_t)- 缓冲区的大小。
返回值:成功时返回指向buf的指针,失败时返回NULL。
6. mkdir
int mkdir(const char *pathname, mode_t mode);
功能:创建一个新目录。
参数:pathname(const char *)- 要创建的目录的路径,mode(mode_t)- 目录的权限。注意,实际权限还会受到umask的影响。
返回值:成功时返回0,失败时返回-1。
7. rmdir
int rmdir(const char *pathname);
功能:删除一个空目录。
参数:pathname(const char *)- 要删除的目录的路径。
返回值:成功时返回0,失败时返回-1。
8. stat
int stat(const char *pathname, struct stat *statbuf);
功能:获取文件或目录的状态信息。
参数:path(const char *)- 文件或目录的路径,buf(struct stat *)- 用于存储状态信息的结构体。
返回值:成功时返回0,失败时返回-1。