读书笔记-第五章 连接控制 学习stty
先放上思维导图
为设备编程&设备就像文件
前面所学的知识都是基于文件的,而在unix/linux系统中,所有的设备(打印机,终端,话筒,摄像头等等)也属于文件,它拥有文件名,支持系统调用,有类似于文件的属性(读、写、最近修改时间等)
举个?
- 文件名:通常的表示设备的文件存放在/dev中,如终端就在/dev/pts当中(对于centos系统在/dev/pts/1中,可能根据linux版本不同有区别,输入
tty
,显示的就是终端的文件),我们可以尝试命令who > /dev/pts/1
,可以看到终端输出了登陆过系统的人及登陆时间,这说明终端设备的文件名就是这个/dev/pts中的1啦
- 支持系统调用:如read,我们从话筒中读取声音数据相当于读取文件中的数据,再如write,我们向/dev/pts/1写入数据相当于是往终端中写入,再打印在屏幕上
- 属性:从上图中的
ls -i /dev/pts/1
可以看出来文件拥有inode 4,权限位为rw–w--w-,1个链接,文件所有者root和组tty,最近修改时间是4月21日 08:14,文件类型是c,表示文件是以字符为单位来传送的,区别:
- 设备文件是链接不是容器
- inode存储的是指向内核子程序的指针(内核中 传输设备数据的子程序被称为设备驱动程序)
- 还有个主设备号确定处理该设备实际的子程序
- 还有个从设备号被作为参数传输到该子程序