Linux高级环境编程之6资源_设备文件管理 终端编程

2018-08-10  本文已影响8人  编程半岛

本课目标

(1) 深入理解Linux设备文件的概念。
(2)掌握终端属性控制。
(3)掌握串口设备文件编程。
(4)掌握Libcurses编程。

主要知识点

(1)认识终端设备。
(2)终端属性及控制。
(3)串口编程。
(4)控制台应用基础及libcurses编程。

1. 设备文件及终端应用编程

“一切都是文件”让所有的应用层的程序、用户操作设备就像操作普通的文件一样。这样屏蔽了底层硬件的实现,简化了开发。这里面主要是VFS提供的统一的接口。这体现面向对象的思路。

终端TTY实际上管理了很多的设备:包括串口、控制台、虚拟终端等设备。

delphi@delphi-vm:~/code/test$ cat /proc/tty/drivers
/dev/tty             /dev/tty        5       0 system:/dev/tty(当前的终端)
/dev/console         /dev/console    5       1 system:console  (控制台终端)
/dev/ptmx            /dev/ptmx       5       2 system (实现虚拟网络终端设备)
/dev/vc/0            /dev/vc/0       4       0 system:vtmaster
rfcomm               /dev/rfcomm   216 0-255 serial  (串口设备)
serial               /dev/ttyS       4 64-111 serial
pty_slave            /dev/pts      136 0-1048575 pty:slave(虚拟网络终端从设备)
pty_master           /dev/ptm      128 0-1048575 pty:master(虚拟网络终端主设备)
unknown              /dev/tty        4 1-63 console

理解printf是怎么打印的信息到当前的终端?

delphi@delphi-vm:~$ ll /dev/stdout
lrwxrwxrwx 1 root root 15 2018-08-06 19:35 /dev/stdout -> /proc/self/fd/1
delphi@delphi-vm:~$ ll /proc/self/fd/1
lrwx------ 1 delphi delphi 64 2018-08-07 17:05 /proc/self/fd/1 -> /dev/pts/0

stdout最终链接到当前的终端设备

2. 终端属性与串口编程

终端设备文件,有相应的具体针对设备的属性控制
输入属性:由驱动程序控制的输入属性
输出属性:由驱动程序控制的输出属性,如换行映射成CR/LF
控制属性:物理串行线的特点。例如波特率,停止位,奇偶校验等
本地属性:用户界面相关的,例如回显

上一篇 下一篇

猜你喜欢

热点阅读