概述:
- Linux IO进程课程目的:学习编写linux应用程序(APP)
- Linux文件的种类 :
常规文件
目录文件
字符文件
块文件
链接文件(相当于windows快捷方式)
- IO的概念
I input 输入设备 比如键盘鼠标都是Input设备
O output 输出设备 比如显示器
优盘,网口,既是输入也是输出
标准I/O由ANSI C标准定义 主流操作系统上都实现了C库 标准I/O通过缓冲机制减少系统调用,实现更高的效率
概念: 一组相关数据的有序集合
文件类型:
常规文件 r
目录文件 d
字符设备文件 c
块设备文件 b
管道文件 p
套接字文件 s
符号链接文件 l
- 系统调用和库函数
系统调用就是操作系统提供的接口函数.
如果我们把系统调用封装成库函数就可以起到隔离的作用,提供程序的可移植性。
Printf就是库函数然后调用了系统调用才在显示器上显示字符。
- 流的概念
就是数据的流,在程序中就是一个结构体。
- Windows 和linux的换行符区别
Windows是\r\n
Linux 是\n
- 缓冲区的概念
为了减少操作IO设备的次数,提高运行效率,在内存里面设置的缓冲区,
全缓冲:缓冲区满才输出
行缓冲:遇到换行符输出
- 三种标准IO :
标准输入流(键盘) | 0 | STDIN_FILENO | stdin |
标准输出流(显示器) | 1 | STDOUT_FILENO | stdout |
标准错误流 | 2 | STDERR_FILENO | stderr |
- 缓冲区概念演示:
Buffer.c 代码
程序正常结束会刷新缓冲区。
- Sleep函数:是释放cpu给其他应用程序使用的库函数。使用的头文件是#include <unistd.h>
查看头文件方法:man 2 函数 ,或者 man 3 函数
- 编译错误告警查看方法