stty命令可以查看和设置串口终端及伪终端的属性,当然,在设置之前你需要知道每个属性的意思,你可以百度 linux 串口编程,来了解终端各个熟悉的意思,串口终端只是终端中的一种,串口的设置和伪终端的设置一样。
我假设你已经了解串口终端的属性,知道tcgetattr()函数是干什么的。
在UBUNTU中,/dev目录下有一个pts目录,这就是伪终端所在的目录。当你在UBUNTU桌面上打开一个终端串口时,在pts目录下就会出现一个设备与其对应,你不妨打开一个终端,查看一下pts目录和运行一下who命令;再打开一个终端,再查看一下pts目录和运行一遍who命令,你就会了解终端窗口与pts目录下设备文件的对应关系。
我们可以查看pts目录下设备的属性
![]() -a :显示所有属性,你可以把它去掉试试。
< :重定向,记住,这个必须有
stty -a 如果缺少参数,此 命令查看的是当前伪终端的属性,你在哪个伪终端窗口上运行,它显示的就是哪个伪终端的属性。当然波特率,奇偶校验等对于伪终端来说没有意义,他们只在串口设备中有意义。
我们来做个实验
STEP 1: 关闭所有终端串口,然后再打开一个。(这样做,是为了保证你登录的伪终端是 dev/pts/0 ) STEP 2: stty -onlcr < /dev/pts/0 STEP 3: ls
这时你将看到错位输出,因为将 pts/0 伪终端输出处理功能中的换行符映射成换行+回车符的功能关闭了,打开可以用 stty onlcr < /dev/pts/0
关于标准输入,输出和出错输出
其实,以上三个设备都在不同的终端下指向同一个设备,你在一个终端中进入/dev目录,运行 ls -l 命令,会发现 stdin stdout stderr都指向/proc/self/fd目录下的文件
![]() 而这个目录下的文件又指向了同一个设备文件
![]() 即:指向了当前登录的伪终端设备文件。所以对当前伪终端属性的更改会影响到这三个文件的属性。
|
|