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

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

作者: 编程半岛 | 来源:发表于2018-08-10 21:32 被阅读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
    控制属性:物理串行线的特点。例如波特率,停止位,奇偶校验等
    本地属性:用户界面相关的,例如回显

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/hzglbftx.html