Linux系统编程-文件操作(四):目录相关函数【getcwd、chdir、opendir、closedir、readdir】

冷不防 2023-09-27 11:06 207阅读 0赞

一、getcwd函数

  1. #include <unistd.h>
  2. char *getcwd(char *buf, size_t size);
  3. 功能:获取当前进程的工作目录
  4. 参数:
  5. buf : 缓冲区,存储当前的工作目录
  6. size : 缓冲区大小
  7. 返回值:
  8. 成功:buf中保存当前进程工作目录位置
  9. 失败:NULL

二、chdir函数

  1. #include <unistd.h>
  2. int chdir(const char *path);
  3. 功能:修改当前进程(应用程序)的路径
  4. 参数:
  5. path:切换的路径
  6. 返回值:
  7. 成功:0
  8. 失败:-1

三、opendir函数

  1. #include <sys/types.h>
  2. #include <dirent.h>
  3. DIR *opendir(const char *name);
  4. 功能:打开一个目录
  5. 参数:
  6. name:目录名
  7. 返回值:
  8. 成功:返回指向该目录结构体指针
  9. 失败:NULL

四、closedir函数

  1. #include <sys/types.h>
  2. #include <dirent.h>
  3. int closedir(DIR *dirp);
  4. 功能:关闭目录
  5. 参数:
  6. dirpopendir返回的指针
  7. 返回值:
  8. 成功:0
  9. 失败:-1

五、readdir函数

  1. #include <dirent.h>
  2. struct dirent *readdir(DIR *dirp);
  3. 功能:读取目录
  4. 参数:
  5. dirpopendir的返回值
  6. 返回值:
  7. 成功:目录结构体指针
  8. 失败:NULL

相关结构体说明:

  1. struct dirent
  2. {
  3. ino_t d_ino; // 此目录进入点的inode
  4. off_t d_off; // 目录文件开头至此目录进入点的位移
  5. signed short int d_reclen; // d_name 的长度, 不包含NULL 字符
  6. unsigned char d_type; // d_type 所指的文件类型
  7. char d_name[256]; // 文件名
  8. };

d_type文件类型说明:










































取值 含义
DT_BLK 块设备
DT_CHR 字符设备
DT_DIR 目录
DT_LNK 软链接
DT_FIFO 管道
DT_REG 普通文件
DT_SOCK 套接字
DT_UNKNOWN 未知

发表评论

表情:
评论列表 (有 0 条评论,207人围观)

还没有评论,来说两句吧...

相关阅读