当前位置: 首页 > java >正文

系统IO对于目录的操作

一.opendir:

函数原型:

#include <sys/types.h>
#include <dirent.h>
DIR *opendir(const char *name);
DIR *fdopendir(int fd);


函数功能:


opendir: 通过路径名打开一个目录文件, 得到目录的目录流指针
fdopendir: 通过文件描述符打开一个目录文件, 得到目录的目录流指针


参数:


name: 指定打开的目录的路径名
fd: 已经被 open 函数打开的目录的文件描述符


返回值:


成功则返回目录的流指针, 失败返回 NULL, 并且 errno 会被设置

二.closedir:

函数原型


#include <sys/types.h>
#include <dirent.h>
int closedir(DIR *dirp);


函数功能:


关闭目录流指针。


参数:


dirp: 目录流指针


返回值:


成功返回 0, 失败返回-1;

 三.readdir:

函数原型


#include <dirent.h>
struct dirent *readdir(DIR *dirp);


函数功能:


每调用这个函数一次就可以读取到目录里面的一个文件的信息,通过返回值返回给我们。


参数:


dirp: 要操作的目录流指针


返回值:


成功返回一个目录结构体指针(这个结构体记录着目录里面读取到的文件信息),如果读取到目录末尾, 则返回 NULL, 但是 errno 不会被设置, 如果读取出错也返回 NULL,但是 errno 会被设置错误信息。

返回的结构体定义

类型名称含义
ino_td_ino文件节点号
off_td_off;目录项的偏移量 
unsigned shortd_reclen;该目录项的大小
unsigned chard_type;文件的类型 
chard_name[256]文件名

结构体中文件类型(d_type)

DT_BLK 块设备类文件类型
DT_CHR字符设备类文件类型
DT_DIR 目录文件类型
DT_FIFO 管道文件类型
DT_LNK 软链接文件类型
DT_REG 常规普通文件类型
DT_SOCK 套接字文件类型
DT_UNKNOWN   无法识别文件类型

四.mkdir:

函数原型:


#include <sys/stat.h>
#include <sys/types.h>
int mkdir(const char *pathname, mode_t mode);


函数功能:


创建一个目录出来


参数:


pathname: 创建目录的路径+名字
mode: 目录的权限, 跟 open 函数的 mode 参数一样(目录也是文件, 也有权限),
注意要给执行权限


返回值:


成功返回 0, 失败返回-1, errno 会被设置

http://www.xdnf.cn/news/15630.html

相关文章:

  • 在断网情况下,网线直接连接 Windows 笔记本和 Ubuntu 服务器进行数据传输
  • AI产品经理面试宝典第36天:AI+旅游以及行业痛点相关面试题的指导
  • 小红书采集工具:无水印图片一键获取,同步采集笔记与评论
  • Golang 中 JSON 和 XML 解析与生成的完全指南
  • SpringBoot切片上传+断点续传
  • vue3引入cesium完整步骤
  • NVIDIA 驱动安装失败问题排查与解决(含离线 GCC 工具链安装全过程)
  • 如何防止GitHub上的敏感信息被泄漏?
  • Visual Studio C++编译器优化等级详解:配置、原理与编码实践
  • imx6ull UI开发
  • 20250718-1-Kubernetes 应用程序生命周期管理-应用部署、升级、弹性_笔记
  • 短视频矩阵的时代结束了吗?
  • 【推理的思想】程序正确性证明(一):演绎推理基础知识
  • 网络编程(modbus,3握4挥)
  • 代码随想录算法训练营第二十四天
  • 包管理工具npm cnpm yarn的使用
  • 【47】MFC入门到精通——MFC编辑框 按回车键 程序闪退问题 ,关闭 ESC程序退出 问题
  • LVS集群
  • Python编程进阶知识之第二课学习网络爬虫(requests)
  • java-字符串和集合
  • JAVA中的Map集合
  • wireshark的常用用法
  • c#笔记之方法的形参列表以及方法重载
  • 测试学习之——Pytest Day3
  • 支付宝智能助理用户会话实时统计:Flink定时器与状态管理实战解析
  • Adam优化器
  • IMU噪声模型
  • 【数据结构】链表(linked list)
  • PostgreSQL 中的 pg_trgm 扩展详解
  • 命名实体识别15年研究全景:从规则到机器学习的演进(1991-2006)