我的发什么是基础的IO流

引言

文件的大小为0,文件要不要在磁盘上占据空间????

要的,文件=属性➕内容(存取,操作 围绕内容和属性展开的!)。文件操作的本质是文件内容操作和文件属性操作。

狭义上理解的文件

  1. 文件在磁盘里面。
  2. 磁盘是永久性存储介质,因此文件在磁盘上的存储是永久的
  3. 磁盘是外设(即是输出设备也是输入设备)
  4. 磁盘上的文件 本质对文件的所有操作,都是对外设的输入和输出 简称IO

广义理解

Linux下一切皆文件

系统角度理解文件

例子对文件的操作(回顾C语言的接口操作)

文件

1内存级文件 2磁盘级文件

输出到显示器上的三种方法

在程序启动时,默认打开三个流

  • w方式打开文件,文件会被清空
  • a方式打开文件,追加在文件末尾。

系统文件的I/O流操作

一种传递标记位的方法

接口的简介

对文件进行写入

读文件

我们在C语言的文件操作函数,实际上在底层封装了open系统调用。

小知识点

文本文件和二进制文件的理解

上层的理解文件

理解重定向

代码

进程替换一点也不影响已经打开的文件

两个小问题

1谈谈你对文件描述符的理解

因为在系统中,文件的数量和状态是多种多样的,操作系统为了管理文件,引入文件描述符。

一个文件要被操作系统管理,需要先加载到内存,并且有描述他的结构体struct file(里面存放文件的状态和各种属性)。

在文件描述符表它的类型是file_struct,里面存放以数组形式file*指针,struct file *fd array\[\],指向我们刚刚说的那个结构体。数组下标就是我们神秘的文件描述符。

简述重定向的原理

每个文件描述符都是一个内核中文件描述信息数组的下标,对应有一个文件的描述信息用于操作文件,而重定向就是在不改变所操作的文件描述符的情况下,通过改变描述符对应的文件描述信息进而实现改变所操作的文件

重新谈重定向

理解操作系统的一切皆文件

在windows是文件的东西,在linux下也是文件;在window下不是文件,比如,进程,磁盘,显示器,键盘这样的硬件设备也被抽象成了文件,甚至管道,也是文件,网络编程的socket(套接字)这样的东西,也可以抽象理解为文件,上述东西,我们都可以用访问文件的方法来访问他们。

开发者仅需一套API和开发工具,就可以调取linux系统中绝大部分的资源。

缓冲区问题

简单封装glibc->文件接口!!!

相关推荐
是发财不是旺财1 分钟前
Hermes 网关四层权限控制方案:让 AI Agent 安全地查数据库
数据库·安全·agent·openclaw·hermes
阿正的梦工坊17 分钟前
【Rust】04-借用、引用与切片
java·数据库·rust
AOwhisky21 分钟前
学习自测与解析:MySQL第五、六、七期核心知识点详解
运维·数据库·笔记·学习·mysql·云计算
阿标在干嘛32 分钟前
政策平台的推送系统:消息队列、定时任务、AB测试的工程实践
服务器·数据库·ab测试
Upsy-Daisy42 分钟前
Hermes Agent 学习笔记 02:安装、配置与第一次运行
java·前端·数据库
Tongpao_SSDHDD1 小时前
希捷酷鹰ST6000VX008实测解析:中小安防监控高性价比存储方案
大数据·数据库·人工智能
蓝鸟19742 小时前
Oracle超大DMP备份文件瘦身、日志精简、磁盘空间优化实战方案日志
数据库·oracle·数据库运维·生产运维实战·oracle避坑·磁盘空间优化·oracle日志清理
金融支付架构实战指南2 小时前
CQRS + 命令模式 + 事件驱动 + 数据库持久化
数据库·ddd·命令模式·领域驱动模型
sevenll072 小时前
DocKit agentic MongoDB GUI 客户端 - 用自然语言和你的数据对话
数据库·mongodb·nosql·agent·桌面客户端
团象科技2 小时前
从一线实操案例拆解不同出海团队落地海外VPS运维独立站的路径细节
大数据·数据库·人工智能