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

系统编程——文件IO

一、文件io

1.lseek : off_t lseek(int fd, off_t offset, int whence);
(1)功能:
定位光标的位置
(2)参数:
1)fd:文件描述符
2)offset:偏移量
正:向后偏移
负:向前偏移
零:不偏移
3)whence:
SEEK_SET
SEEK_CUR
SEEK_END
4)返回值:成功返回偏移量,失败返回-1
(3)注意:
1)不支持O_APPEND的追加模式,无法生成空洞文件。
2)lseek函数执行失败,文件指针还在偏移前的位置。
3)lseek函数在设备文件上偏移无效。

(4)阻塞:程序因为某种条件没有被触发,而导致'0'   '\0'
(5)面试题:文件IO的文件描述符最大值是多少? 

          答:1024 个,范围0-1023 

2.fileno

(1)FILE* fp -> int fd     fgets(,);
int fileno(FILE *stream);
(2)功能:获得一个文件流指针中的文件描述符
(3)参数:stream:文件流指针
(4)返回值:成功返回文件描述符,失败返回-1

3.fdopen

(1) int fd -> FILE *fp
FILE *fdopen(int fd, const char *mode);
(2)功能:将文件描述符转化为文件流指针
(3)参数:

        1)fd:已经打开的文件描述符
2)mode:
"r"
"r+"
"w"
"w+"
"a"
"a+"
(4) 返回值:成功返回文件流指针
失败返回NULL

二、文件目录操作

1.打开目录(opendir):DIR *opendir(const char *name);
(1)功能:打开一个目录获得一个目录流指针
(2)参数 : name:目录名
(3)返回值:成功返回目录流指针,失败返回NULL

2.读取目录(readdir):struct dirent *readdir(DIR *dirp);
(1)功能:从目录流中读取文件信息并将保存信息的结构体地址返回
(2)参数:dirp:目录流指针
(3)返回值:包含文件信息的结构体,出错或者读到目录流末尾返回NULL

3.关闭目录(closedir): int closedir(DIR *dirp);
(1)功能:关闭之前已经打开的目录流对象
(2)参数:opendir的返回结果中目录流对象
(3)返回值:成功  0,失败   -1

4.获取秒数
(1)time
time_t time(time_t *t);
time_t tm;
time(&tm)

        tm = time(NULL);
1)功能:获得1970年到现在的秒数
2)参数:
1)t:存放秒数的空间首地址
2)返回值:成功返回1970年到现在的秒数,失败返回-1

2.localtime:struct tm *localtime(const time_t *timep);
(1)功能:将一个秒数转化成日历时间
(2)参数:timep:保存秒数空间的地址
(3)返回值:成功返回保存日历时间结构体的指针,失败返回NULL

4.文件类型:

top:当前运行的程序有多少个

http://www.lryc.cn/news/599499.html

相关文章:

  • SpringBoot整合Fastexcel/EasyExcel导出Excel导出多个图片
  • 面向对象编程实战:Python打造你的数码宠物世界
  • Java NIO FileChannel在大文件传输中的性能优化实践指南
  • 盟接之桥说制造:构建以预防为核心的供应链客诉管理体系
  • GitHub git push 推送大文件
  • 【第四章:大模型(LLM)】01.Embedding is all you need-(6)从 Word2Vec 到推荐/广告系统,再到大语言模型(LLM)
  • Three.js 控制器和交互设计:OrbitControls + Raycaster 实战
  • ✨ 使用 Flask 实现头像文件上传与加载功能
  • Kafka——多线程开发消费者实例
  • MCP工具开发实战:打造智能体的“超能力“
  • 半相合 - 脐血联合移植
  • C++ 常用的数据结构(适配器容量:栈、队列、优先队列)
  • 海云安斩获“智能金融创新应用“标杆案例 彰显AI安全左移技术创新实力
  • 智能网关芯片:物联网连接的核心引擎
  • VR 污水处理技术赋能广州猎德污水处理厂,处理效率显著提升
  • FastDFS如何提供HTTP访问电子影像文件
  • 网络协议,DHCP 协议等。
  • 每日面试题14:CMS与G1垃圾回收器的区别
  • http-proxy-middleware MaxListenersExceededWarning
  • Java 大视界 -- 基于 Java 的大数据分布式存储在工业互联网数据管理与边缘计算协同中的创新实践(364)
  • 零碳园区如何破局?安科瑞EMS3.0以智慧能源管理重构低碳未来
  • 借助Aspose.HTML控件,在 Python 中将 SVG 转换为 PDF
  • Kimi K2 大语言模型技术特性与应用实践分析
  • 酷暑来袭,科技如何让城市清凉又洁净?
  • 冠捷科技 | 内生外化,精准触达,实现数字化转型精准赋能
  • Pytorch混合精度训练最佳实践
  • 人工智能冗余:大语言模型为何有时表现不佳(以及我们能做些什么)
  • 广东省省考备考——常识:科技常识(持续更新)
  • 【指南版】网络与信息安全岗位系列(一):网络安全工程师
  • DNF: Decouple and Feedback Network for Seeing in the Dark