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

设备文件
在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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值