《unix/linux编程实践教程》学习笔记:第五章 连接控制:学习stty

来源:互联网 发布:matlab 最优化算法 书 编辑:程序博客网 时间:2024/06/05 21:46

设备文件
在unix系统中,每个设备都被当做一个文件,每个文件都有一个文件名,一个inode号,一个文件所有者,一个权限位的集合和最近修改时间。
且通常表示设备的文件存放在目录/dev中,但是可以在任何目录下创建设备文件。
因此设备支持所有与文件相关的系统调用:open,read,write,lseek.close,stat

设备文件的inode
设备文件的inode包含指向内核子程序表的指针。主设备号用于告知从设备读取数据的那部分代码的位置。
设备文件的read系统调用的工作过程,内核首先找到文件描述符的inode,得知该文件是设备文件后,内核通过调用该设备驱动程序的read部分来读取数据。

设备与磁盘文件的不同
系统通过调用open创建文件和设备与进程的连接,但是他们有着不同的性质。
磁盘连接的两个主要属性:
(1)缓冲:磁盘文件有缓冲区,可以通过fcntl()关闭
(2)自动添加模式:即当文件描述符的O_APPEND打开后,每个对write的调用自动调用lseek将内容添加到文件末尾。
终端连接
具有回显,波特率, 编辑和换行会话。

相关系统调用
fcntl:控制文件描述符
ioctl:控制一个设备
tcsetattr:设置tty驱动程序的属性
tcgetattr:读取tty驱动程序的属性

终端
终端是人们用来和unix进程进行通信的设备。终端拥有一个可以让进程读取字符的键盘和可让进程发送字符的显示器。
进程与终端间的数据传输和数据处理由终端驱动程序负责,终端驱动程序是内核的一部分,该部分代码提供缓冲,编辑和数据转换。

代码

0 0
原创粉丝点击