社区
Linux/Unix社区
内核源代码
帖子详情
【Linux】基础IO --- 系统级文件接口、文件描述符表、文件控制块、fd分配规则、重定向…
rygttm
新星创作者: C/C++技术领域
2023-01-26 17:11:44
https://blog.csdn.net/erridjsis/article/details/128682902
...全文
117
回复
打赏
收藏
【Linux】基础IO --- 系统级文件接口、文件描述符表、文件控制块、fd分配规则、重定向…
https://blog.csdn.net/erridjsis/article/details/128682902
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
【
Linux
/OS学习】
基础
文件
控制
/
IO
——内存
文件
一个
文件
要有一个唯一的
文件
标识,以便用户识别和引用。
文件
名包含3部分:
文件
路径+
文件
名主干+
文件
后缀头
文件
<unistd.h>定义了常量 STDIN_FILENO、STDOUT_FILENO和 STDERR_FILENO,它们可用来代替显式的描述符值。标准输出流和标准错误流的区别利用管道可以更好解释,不在此文解释
Linux
内核中task_struct 结构体作为进程的抽象封装,是
Linux
里面最复杂的结构体之一 ,成员字段非常多,不仅包括描述虚拟空间的mm_struct,还有描述管理
文件
的file_s
Linux
基础
IO
---
-
重定向
上次我们谈到了
FD
文件
描述符
的
分配
规则
:我们知道进程会默认打开三个
文件
流,stdin、stdout、stderr,他们的
文件
描述符
分别是0、1、2此后我们再打开
文件
的话,被打开的
文件
的
FD
就会从3开始往后排。那么按照
FD
的
分配
策略,我们将对应显示器
文件
的stdout
文件
流关闭,然后在打开一个
文件
并进行像显示器输入的操作会发生什么呢?按照理论,stdout被关闭那么2的位置就空了出来,此时新打开的
文件
的
FD
就是2。代码试验关闭stdout:执行打印发现程序并没有打印信息打开一个
文件
再次尝试输出:我们发现输出消
【
Linux
】
基础
IO
(一) :
文件
描述符
,
文件
流指针,
重定向
介绍
系统
级
文件
接口
、
文件
描述符
表
、
文件
控制
块
、
文件
描述符
分配
规则
、
Linux
重定向
、
Linux
下一切皆
文件
等知识……
解码
Linux
文件
IO
之
系统
IO
摘要:
Linux
系统
IO
与标准
IO
对比:
系统
IO
直接调用内核
接口
,无缓冲区,适用于实时操作;标准
IO
通过缓冲区减少
系统
调用,效率更高但仅支持普通
文件
。
文件
描述符
(
fd
)是进程访问
文件
的唯一标识,本质是数组下标。核心
系统
IO
函数包括open(打开/创建
文件
)、close(关闭
文件
)和read(读取数据)。open需指定访问模式和可选标志;close释放资源,多次关闭同一
fd
会失败;read可能返回少于请求的字节数。进程默认打开0-2三个
fd
(标准输入/输出/错误)。
Linux/Unix社区
23,224
社区成员
74,535
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章