标准IO:
遵循ANSI C标准 即fopen fclosse fread…用于对二进制文件和文本文件的操作
特点:
通过缓冲机制减少系统调用,实现更高的读写效率
在内存中开辟缓冲区,每次系统调用读取一大块数据放入缓冲区内,通过对缓冲区的读写,
降低系统调用的频率,当缓冲区空了 或者满了,再进行下一次的系统调用
系统调用:
1.有操作系统的情况下,应用程序访问硬件必须通过操作系统提供的系统调用接口来完成
2.不同操作系统的系统调用接口不兼容
3.不同操作系统所支持的文件类型是不同的:比如管道,套接字,链接文件 在windows都不支持
流:
FILE 的结构体,用于存放打开的文件的相关信息
流分类:
二进制流:换行符 = ‘\n’
文本流:换行符 = ‘\r\n’
两者的区别是对于回车的处理 在windows区分二进制流和文本流文件 在linux中则不区分 统一用’\n’即用一个字符处理
缓冲类型:
1.全缓冲:
文件fopen后,默认就是全缓冲,当流的缓冲区无数据或无空间时,才执行的io操作
文件在读写模式下分别建立读缓冲和写缓冲,当读缓冲数据读完后再次触发系统调用,从
磁盘内读取下一批数据,当写缓冲被写满时,触发系统调用,将缓冲区写入磁盘内,写缓冲就空了
2.行缓冲:
按行进行的输入输出
在对流文件执行输入输出时遇到’\n’,进行io操作
当流的终端关闭时,典型的流缓冲
3.无缓冲:
数据直接输出
linux标准IO的介绍与使用
最新推荐文章于 2024-09-24 10:14:34 发布
本文介绍了Linux标准IO,包括其遵循的ANSI C标准、通过缓冲提高效率的特点,以及系统调用、流的概念。详细阐述了全缓冲、行缓冲和无缓冲的区别,并列举了如fopen、fclose、fread等基本文件操作,同时讨论了文件权限、错误处理和定位流的方法。
摘要由CSDN通过智能技术生成