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

day26- 系统编程之 文件IO(II) 及 文件属性

一、文件IO函数(续)

1.1 lseek函数:(与fseek用法相似)

off_t lseek(int fd, off_t offset, int whence);

功能:
            定位光标的位置
参数:
            fd:文件描述符
            offset:偏移量

1.2 fileno函数

int fileno(FILE *stream);

功能:
    获得一个文件流指针中的文件描述符
参数:
    stream:文件流指针
返回值:
    成功返回文件描述符
    失败返回-1

1.3 fdopen函数

FILE *fdopen(int fd, const char *mode);
  • 功能:

            将文件描述符转化为文件流指针

  •  参数:

            fd:已经打开的文件描述符
            mode:
                "r"
                "r+"
                "w"
                "w+"
                "a"
                "a+"

  •  返回值:

            成功返回文件流指针
            失败返回NULL    

1.4 perror函数(系统级别报错函数)

void perror(const char *s);标识性信息,写对应的函数,如fopen main.c;10

      作用是将上一个函数发生错误的原因输出到标准错误输出(stderr)

      适用于man2、man3的函数使用,第三方库就不行;

1.5 文件权限

fopenopen
wO_WRONLY|O_CREAT|O_TRUNC 
w+O_RDWR|O_CREAT|O_TRUNC 
rO_RDONLY 
r+O_RDWR
aO_WRONLY|O_CREAT|O_APPEND
a+O_RDWR|O_CREAT|O_APPEND

二、 目录(只读)

.和..为隐藏目录,任何目录下都存在.和..

2.1 操作步骤

        1,打开目标目录 opendir
        2.读取目录        readdir
        3.关闭目录         closedir

目录 当文件看,只不过操作函数和操作文件函数不一样

         DIR表示目录流指针

        direntry表示一次取整体目录的一条

2.2 相关函数

2.2.1 opendir函数

DIR *opendir(const char *name);

返回值:成功,返回目录流指针;否则,返NULL;

2.2.2 readdir函数

struct dirent *readdir(DIR *Dirp);

struct dirent的结构体:

        其中,我们可能使用:

char d_name[256];                        //文件名

unsigned char d_type;                  //文件类型

        文件类型:

块设备,存储类,硬盘、光盘等
字符设备,如鼠标、键盘等
目录
管道
符号链接也称软连接,与windows的桌面快捷方式类似
普通文件
网络文件
不认识

 

2.2.3 closedir函数

int closedir(DIR *dirp);

2.3 时间函数

2.3.1 time函数//秒数 

time_t time(time_t *tloc);

若传入NULL,返回秒数 

 2.3.2 localtime函数//日期

struct tm *localtime(const time_t *timep);

 

三、总结

 

 

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

相关文章:

  • 数据结构:绪论之时间复杂度与空间复杂度
  • 论文阅读笔记——PixArt-α,PixArt-δ
  • 滚珠导轨:重构精密仪器传动架构,开启微纳世界
  • C++-继承
  • k8s容器入门(1)有状态服务 vs 无状态服务 核心区别
  • list(c++)
  • 排序和排列——蓝桥杯备考
  • 在Java的list.forEach(即 Stream API 的 forEach 方法)中,无法直接使用 continue 或 break 语句的解决办法
  • Lucide:一款精美的开源矢量图标库,前端图标新选择
  • 5G 核心网中的 NPN 功能详解
  • MongoDB大数据量的优化——mongoTemplate.stream()方法使用
  • 参与开发的注意事项
  • 每日算法-250522
  • CUDA加速的线性代数求解器库cuSOLVER
  • Spring AI 之提示词
  • 智能IoT未来与边缘生态共建 | 2025 高通边缘智能创新应用大赛第六场公开课来袭!
  • go语言基础
  • FastAPI在 Nginx 和 Docker 环境中的部署
  • 【Python socket模块深度解析】网络通信的核心工具
  • 高性能图表库SciChart WPF v8.8全新发布——提升渐变颜色映射高度
  • Mysql的主从同步
  • VR溺水安全:为生命筑牢数字化防线
  • 常见算法题目1 - 给定一个整数数组和一个目标值,找出数组中两个数之和等于目标值的数组下标组合
  • MySQL的相关操作
  • RTC技术
  • 第六部分:阶段项目 5:构建 NestJS RESTful API 服务器
  • STM32+rt-thread使用MQTT协议连接腾讯物联网平台
  • 旧物回收小程序:让闲置焕发光彩,为生活增添价值
  • spring boot启动报错:2002 - Can‘t connect to server on ‘192.168.10.212‘ (10061)
  • 响应式架构下的调试挑战:WebDebugX 如何帮助前端稳住场面?