- 小杰会尽量地将其梳理清楚, 大家一起学习,共同进步, 知识不分高低, 计算机的学习小杰认为也是一个 量变 —> 质变 的过程
- 天道酬勤, 水滴石穿, 在不同的阶段就干好自己当前阶段力所能及之事, 至少是没有在寝室的床上瘫着消磨时光 ——– 愿大家都学有所成,所获
文件IO相关系统调用 (Linux下一切皆文件, 理解掌握文件IO是必须)
-
IO系统调用内核态, 底层数据结构理解助学
- 我们调用系统调用, 是向内核中对应打开的文件中写入数据, 或者从中读取数据的. 系统调用相当于是打通用户态和内核态的一个通道.
- 我们可以通过向文件描述符fd 进行写入数据, 和读取数据. whyfd: 句柄, 内核数据结构进行了完善的封装组织, 我们通过简单的操作fd, 系统调用就会将操作对应映射到对应打开的文件上面去. — Linux下面一切皆为文件思想贯穿整个Linux的底层设计, 掌握清楚了文件IO, 对于后序的各种通信的学习和理解也是至关重要的
-
open
功能: open file and create new fd (lowest-numbered file descriptor)
Rerturn Val :
sucess return fd failure return -1
-
close
括 式编程, 有open 就一定需要close
代码测试
-
read
eg: 从a.txt 中读取所有数据. 如下是准备a.txt数据
如下是代码实现:
- 其实可以稍作修改不再需要带上./
- 解释一下为啥我们运行系统命令cat cp … 不需要./ nbsp; 因为环境变量PATH中存在他们所在路径可以找到这个可执行文件进行执行, 如果我们自己写的可执行程序也想要这样执行, 我们就需要将其路径加入到PATH中 或者 是 将其加入到/user/bin 下面去
- 2将可执行文件所在路径加入到PATH环境变量中去
-
write
作用: 向对应的fd打开的文件中写入数据 fd —> file* —-> file.inode
测试代码: 修改上述mycat 案例中的printf 为 write:
test code
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!