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

Linux应用编程(文件IO)

0. Linux应用编程

Linux应用编程是指,通过调用操作系统API来实现应用程序。

1. 文件IO

文件IO的意思是读写文件,IO是input/output。

// 常用的系统API
open、close、write、read、lseek
// exit、_exit、_Exit: 退出进程
// errno:	error no(number, no.1),Linux给错误的编号
// perror:	print error
  • int open(const char *pathname, int flags);

在linux系统中操作文件,需要以open文件开始,以close文件结束。
open将硬盘中的静态文件复制到内存中变成动态文件,得到一个文件描述符,然后对文件进行读写操作。

  • open返回值: 是一个文件描述符(fd,file descriptor),文件描述符就是一个数字,用来区分一个程序打开的多个文件。
  • flags: O_RDONLY(只读) O_WRONLY(只写) O_RDWR(读写) ;O_APPEND(追加) O_TRUNC(覆盖)
  • int close(int fd);
  • ssize_t read(int fd, void *buf, size_t count);
  • fd: 表示要读取哪个文件,一般由open返回得到
  • buf: 应用程序提供的一段内存缓冲区,用来存储读出的内容
  • count: 要读取的字节数
  • ssize_t类型: linux内核用typedef重定义的一个类型(其实就是int),返回值表示成功读取的字节数。
  • ssize_t write(int fd, const void *buf, size_t count);
  • const void *buf: 输入型参数,应用程序提供的一段内存缓冲区,用来存储要写入的内容
  • off_t lseek(int fd, off_t offset, int whence);

动态文件在内存中是文件流的形式,文件流很长,当前正在操作的位置在GUI模式下用光标来标识,Linux下通过文件指针来表征这个正在操作的位置。read和write函数都是从当前文件指针处开始操作的。
文件指针,是文件管理表这个结构体里面的一个指针,是vnode中的一个元素。

2. 标准IO

标准IO由一系列的C库函数构成(fopen、fclose、fwrite、fread),在应用层添加一个缓冲机制,写入的内容不是直接进入内核中的buf,而是先进入应用层标准IO库自己维护的buf中。

http://www.dtcms.com/a/109597.html

相关文章:

  • 移远RG200U-CN模组WAKEUP_IN引脚
  • SAP ABAP AVL单元格颜色
  • 问题解决:glog中的LOG(INFO)与VLOG无法打印
  • 每日一题(小白)分析娱乐篇10
  • DDD与MVC扩展能力对比
  • Agent TARS与Manus的正面竞争
  • THUNLP_Multimodal_Excercise
  • Java - WebSocket配置及使用
  • Dart 语法
  • 【Tauri2】013——前端Window Event与创建Window
  • 搭建环境-opencv-qt
  • 震源车:震源激发平板模态分析
  • 使用python实现视频播放器(支持拖动播放位置跳转)
  • 第二十六章:Seaborn库实现统计数据可视化
  • 2025年机动车授权签字人考试判断题分享
  • 2025年渗透测试面试题总结- 某汽车厂商-安全工程师扩展(题目+回答)
  • 量子计算与经典计算的融合与未来
  • AI赋能——让人工智能助力工作提质增效
  • CVPR2024 | 构建时序动作检测模型对时序干扰的鲁棒性基准
  • 近日八股——计算机网络
  • 使用pycharm社区版调试DIFY后端python代码
  • 破解 N 皇后 II:位运算的高效艺术
  • 4月3日工作日志
  • CVSS-通用漏洞评分系统版本 4.0:规范文档
  • 代码随想录|动态规划|18完全背包理论基础
  • Java Lambda 表达式提升效率
  • 高效深度学习lecture01
  • Flask与 FastAPI 对比:哪个更适合你的 Web 开发?
  • MySQL(三)
  • 二分类交叉熵损失