0
点赞
收藏
分享

微信扫一扫

【Linux】基础IO_1

_铁马冰河_ 2024-06-20 阅读 6
linux学习

文章目录


六、基础IO

1. C语言的文件接口

我们知道 文件 = 文件内容 + 文件属性 。即使是一个空文件,仍然会在磁盘中占据空间。那打开文件是什么意思呢?其实文件打开的意思就是:将文件从磁盘中加载到内存中。 文件跟程序一样,被操作系统使用内核数据结构给管理起来了,对文件的操作就转变为对文件的调度。
我们接下来熟悉和使用C语言中的文件接口。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参数:
在这里插入图片描述

不知道大家还记得Linux中的重定向符不,>输出重定向,<输入重定向,>>追加重定向。
在这里插入图片描述
重定向符和文件流非常相似,他俩肯定有莫大的关系。既然知道了写操作,我们接下来看看文件读取操作。
在这里插入图片描述
在这里插入图片描述

2. 系统文件I/O

我们从键盘接收输入,打印到显示器上,但键盘和显示器都是硬件资源,他们统统被操作系统所管理,我们的文件(进程)无法绕过操作系统打开这些资源,所以操作系统必须要提供一些接口来支持文件访问。
在这里插入图片描述
我们来用一用:
在这里插入图片描述
在这里插入图片描述
接下来看看怎么写和怎么关闭:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
open系统调用接口传递标志位(本质是宏)时,还有其他的标志位。
在这里插入图片描述
在这里插入图片描述

fd的分配规则:最小的没有被使用的数组下标,会被分配给最新打开的文件。 所以我们可以:close(1),即关闭stdout流,然后新打开的文件的fd就是1,但是输出函数并不知道,向显示器打印的字符串统统转变成向文件内写入。就实现了重定向的功能。
在这里插入图片描述
这里 dup2 函数可以方便实现重定向的功能。


未完待续

举报

相关推荐

0 条评论