linux 从0 学习(一) 标准I/O

I/O操作的对象就是文件

文件概念:一组相关数据的有序集合

文件类型:常规文件 r(编译好的程序、txt等);目录文件 d;字符设备文件 c ;块设备文件 b;管道文件 p(进程间通信);套接字文件 s (进程间通信);符号链接文件 l (link;快捷方式)

标准I/O :ANSI c标准定义;内部存有缓冲机制减少系统调用 

举例:

无缓冲区:  每次读取都需要调用 系统驱动区读写 磁盘(开销很大)

APP(发出请求读取10个字节的数据)-------------------系统(驱动调用)---------disk(磁盘数据读写)

有缓冲区: 每次读取会 先从缓冲区那里获取字节数;如果(无)才会调用系统驱动(减少了对磁盘重复读取的开销)

APP(读取10个字节的数据)-----------系统(开辟一个 eg:2k的空间)-------------驱动调用-------------磁盘读取

程序的运行方法有两种:

无OS(操作系统) 代码-------》硬件;代码裸接硬件(容易造成系统瘫痪)

有OS    app(n)--》os-----》硬件;操作系统是多任务的,通过系统给的api 访问硬件(安全并保护了硬件)

不同系统 ,调用接口不一致

   

标准I/O ----流

FILE :标准io用一个结构体类型

windows

文本流:换行符 ='\r''\n'                       二进制流:换行符 = '\n'

linux

换行符都为 '\n',都是二进制流

标准I/O- 流的缓冲类型

 全缓冲

   当流的缓冲区无数据或无空间时执行实际的I/O操作;eg:读取文件

行缓冲

   当在输入和输出中遇到换行符('\n')时,进行I/O操作。(eg:cout<<x<<endl)

无缓冲

   eg:打印错误信息

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值