从文件的角度看设备 每个加载到Linux的设备都通过文件名表示,这些文件一般都存放在/dev中,但可以在任何目录中创建设备文件。设备文件名如上图所示,fd文件是软驱,tty*是终端。设备可以支持与所有文件相关的系统调用:open、read、write、lseek、close和stat。设备就像是文件,可以对某些设备像文件一样的...
Linux系统编程【5】——stty的学习
从文件的角度看设备
每个加载到Linux的设备都通过文件名表示,这些文件一般都存放在/dev中,但可以在任何目录中创建设备文件。设备文件名如上图所示,fd文件是软驱,tty*是终端。设备可以支持与所有文件相关的系统调用:open、read、write、lseek、close和stat。设备就像是文件,可以对某些设备像文件一样的读写。例如,可以将一个文件的内容复制到终端设备中,或者用重定向符">"将输出内容重定向到终端。
设备文件的i节点存储的是指向内核子程序的指针,而不是文件的大小和存储列表。"c"表示这是一个字符型设备。设备文件的i节点号为4,权限位为rw--w----,一个链接,文件所有者为lularible,所在组为tty,以及最新修改时间。主设备号确定处理该设备实际的子程序,而从设备号被作为参数传递到该子程序。
在知道了终端设备可以同普通文件一样进行读写后,可以实现一个简单的write程序,该程序可以与其他终端用户聊天。输入终端文件名,打开它,利用循环向其中写入字符,直到退出。处理逻辑就是从main的argv中接收到目标终端文件名,然后打开它,利用循环向其中写入字符,直到退出。
终端与磁盘文件不同,磁盘文件的i节点包含指向数据块的指针,设备文件的i节点包含指向内核子程序表的指针。磁盘连接属性缓冲可以关闭内核的缓冲,通过三个步骤改变驱动器设置,具体代码为。终端驱动程序处理进程和外部设备间数据流的内核子程序的集合。stty命令可以显示和改变终端驱动程序的设置,可以显示终端设置,也可以改变终端设置。除了使用Linux提供的shell命令stty,还可以自己编写代码来设置终端驱动。2024-09-10