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

重定向 缓冲区

如何理解一切皆文件(硬件设备方面)

OS如何管理各种硬件设备?

先描述,再组织

struct device

vfs

虚拟文件系统

多态技术,具体接口都继承了read/write

属性/类型一样(同一函数名)

但是值可以不同(函数实现/属性值)

如read,write

类似iterator

为什么语言喜欢封装

方便用户操作

提高语言可移植性(跨平台,多态)

I/O基本过程   文件内核级缓冲区 重定向

write本质是拷贝函数,拷贝到文件的内核缓冲区

从缓冲区保存到磁盘:由OS自主决定

每个文件都有自己的内核缓冲区

读取:从磁盘加载到文件内核缓冲区

修改:本质是先读取,再写入

缓冲区作用:

效率高(速度:内存>磁盘,效率:一次I/O>多次I/O)

fd分配规则:最小的未使用的

printf封装了fprintf,固定了FILE* stdout,固定了fileno=1

重定向

上层代码不知情,(认为0,1,2不变)

将新文件地址拷贝到要定向的目标位置

dup2

int dup2(int oldfd,int newfd)

dup2(3,1)将fd为3拷贝覆盖fd1

重定向示例

do while(0),用于包裹代码块, 正确识别宏


http://www.kler.cn/news/358424.html

相关文章:

  • 如何在 React 中更新状态对象的某个值
  • 基于SSM果蔬经营系统的设计
  • 滚雪球学Redis[8.1讲]:Redis的扩展与未来发展
  • chatgpt搭建大模型技术知识解读与总结
  • 【力扣打卡系列】滑动窗口与双指针(盛最多水的容器)
  • 【C++】13.string类的底层
  • ACH支付详解,北美电商为何偏爱这一方式
  • 基于x86_64汇编语言简单教程2: 分析我们的样例
  • Python基础09
  • 微服务架构 --- 使用Sentinel来处理请求限流+线程隔离+服务熔断
  • 2024系统分析师考试---论区块链技术及其应用
  • 7.计算机网络_IP包头
  • No provider available from registry RegistryDirectory
  • LeetCode[中等] 80. 删除有序数组中的重复项 II
  • SQL Injection | SQL 注入 —— 报错盲注
  • STM32F4读写SD卡:填一填ST官方HAL库的坑
  • 搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程
  • K-means 聚类算法:目标函数推导、迭代过程及可视化解析
  • Python进阶3
  • Vxe UI vue vxe-table grid 性能优化,提高渲染性能