Understanding Unix/Linux Programming note:chapter 5:连接控制:学习stty
2013-10-26 01:04
726 查看
Key-word: stty, fcntl, tcsetattr, tcgetattr
本章通过stty命令的编写讲解如何设置设备的属性。
stty命令用于让用户读取和修改终端驱动程序的设置。
1、设备和文件的含义
内核在进程和外部世界间交换数据。
外部世界包括磁盘文件、终端和外部设备。(?个人理解:外部世界包括磁盘文件和外部设备,终端是重要且特殊的外部设备)。
5.2、设备就像文件
设备具有文件名;支持open, read, write等系统调用;
设备文件的i-节点存储的是指向内核子程序的指针;磁盘文件的i-节点存储的是指向数据块的指针;
5.3、设备与文件的不同之处
系统调用open创建与磁盘文件或设备的连接;两者的连接具有不同的属性。
为了解释5.3,通过5.4介绍磁盘文件的连接属性,通过5.5介绍终端的连接属性(终端是一种特殊的设备),通过5.6介绍通用设备的属性设置。
5.4、磁盘文件的连接属性
通过函数fcntl调用设置磁盘文件的连接属性,如:内核的缓冲机制。
5.5、终端连接的属性
通过库函数tcgetattr和tcsetattr 来读取和设置终端驱动程序的属性,如:是否回显、阻塞/非阻塞输入。
5.6、其他设备编程
每个设备文件都支持系统调用icotl。系统调用ioctl提供对连接到fd的设备驱动程序的属性和操作的访问。每种类型的设备都有自己的属性集合ioctl操作集。
本章通过stty命令的编写讲解如何设置设备的属性。
stty命令用于让用户读取和修改终端驱动程序的设置。
1、设备和文件的含义
内核在进程和外部世界间交换数据。
外部世界包括磁盘文件、终端和外部设备。(?个人理解:外部世界包括磁盘文件和外部设备,终端是重要且特殊的外部设备)。
5.2、设备就像文件
设备具有文件名;支持open, read, write等系统调用;
设备文件的i-节点存储的是指向内核子程序的指针;磁盘文件的i-节点存储的是指向数据块的指针;
5.3、设备与文件的不同之处
系统调用open创建与磁盘文件或设备的连接;两者的连接具有不同的属性。
为了解释5.3,通过5.4介绍磁盘文件的连接属性,通过5.5介绍终端的连接属性(终端是一种特殊的设备),通过5.6介绍通用设备的属性设置。
5.4、磁盘文件的连接属性
通过函数fcntl调用设置磁盘文件的连接属性,如:内核的缓冲机制。
5.5、终端连接的属性
通过库函数tcgetattr和tcsetattr 来读取和设置终端驱动程序的属性,如:是否回显、阻塞/非阻塞输入。
5.6、其他设备编程
每个设备文件都支持系统调用icotl。系统调用ioctl提供对连接到fd的设备驱动程序的属性和操作的访问。每种类型的设备都有自己的属性集合ioctl操作集。
相关文章推荐
- Understanding Unix/Linux Programming note:chapter 6:为用户编程:终端控制和信号
- Understanding Unix/Linux Programming 笔记:chapter 11:连接到近端或远端的进程:服务器与Socket(套接字)
- Understanding Unix/Linux Programming 笔记:chapter 12:连接和协议:编写Web服务器
- Understanding Unix/Linux Programming note:chapter 1:执行可执行文件时的参数传递
- Understanding Unix/Linux Programming note:chapter 1:more函数的流程图
- Understanding Unix/Linux Programming note:chapter 2, chapter 3, chapter 4
- Understanding Unix/Linux Programming-终端控制和信号
- Understanding Unix/Linux Programming 笔记:chapter 9:可编程的shell、shell变量和环境; chapter 10:I/O重定向和管道
- Understanding Unix/Linux Programming 笔记:chapter 15:进程间通信(IPC)
- Understanding Unix/Linux Programming 笔记:chapter 8:进程和程序:编写命令解释器sh
- Understanding Unix/Linux Programming-设备文件与磁盘连接的概念
- Understanding Unix/Linux Programming 笔记:chapter 13:基于数据报(Datagram)的编程:编写许可证服务器
- Understanding Unix/Linux Programming 笔记:chapter 7:事件驱动编程:编写一个视频游戏
- Understanding Unix/Linux Programming 笔记:chapter 14:线程机制:并发函数的使用
- 《Understanding the Linux kernel》学习笔记 Chapter 13: I/O Architecture and Device Drivers
- Understanding Unix/Linux Programming-用户程序:play_again0
- Understanding Unix/Linux Programming-用户程序:play_again1
- Understanding Unix/Linux Programming-用户程序:play_again2
- Understanding Unix/Linux Programming-用户程序:play_again3
- 第5章 连接控制:学习stty