12得票1回答
为什么Linux的pty驱动程序会用NUL替换VEOF?

在Linux上,似乎pty驱动程序会将终端设置为非规范模式(non-canonical mode)并在从主设备那里读取之前替换已写入的数据中的VEOF字符(^D, \4)为NUL字节(\0)。 这为什么会发生?它是否有任何合理的解释或者只是一个错误? 是否有任何方法可以避免这种情况? - ...

10得票1回答
PTY/TTY - 只有从属文件描述符,可以做什么事情?

问题: 如果我有一个pty或tty的主/从对,如果我只有从节点的文件描述符,我不能做什么?或者换句话说:只有当我拥有主节点的文件描述符时,我才能做些什么? 我的当前理解: 我了解终端/控制台/SSH与人类接口的典型关系,以及一个或多个程序(例如一个shell和它的子进程)在从节点上。我(大致...

35得票1回答
Linux阻塞与非阻塞串口读取

我有这段代码用于在Linux中读取串口数据,但是我不知道阻塞和非阻塞读取串口的区别,以及在哪种情况下哪种方法更好?

11得票2回答
Linux - 移动控制台光标的可视化

我目前正在为Linux设计一个CLI界面,由于各种原因,我无法使用ncurses。我完全使用C++和Qt框架。 因此,为了拥有用户友好的界面,我必须在单独的线程中运行此getch循环: https://dev59.com/MnRC5IYBdhLWcg3wD83r#912796 这基本上意...

7得票2回答
Python TTY 控制

我猜我不太清楚在Linux/Unix机器上getty/agetty/mgetty程序的作用是什么。我可以使用以下命令在tty上启动shell: TTY = '/dev/tty3' cpid = os.fork() if cpid == 0: os.closerange(0, 4) ...

7得票1回答
如何区分Escape和Escape Sequence

我的最终目标是区分我在键盘上按下Esc(ASCII码27)和我按下键盘上的→键(它转换为一系列的27 91 67)。我正在使用termios将我的终端置于非规范模式。 我认为有两种选择: - 等待一段任意时间以查看是否有输入(似乎很hacky)。 - 检查STDIN以查看它是否为空。 我...

7得票1回答
防止输入的字符显示出来(就像在termios中禁用“echo”属性一样)

我正在编写一个bash脚本,从输入中读取单个字符。我使用read -n 1 -s实现此操作。-n 1用于仅读取一个字符;-s是“静默”模式,在该模式下,键入的字符不可见。 问题是,当当前执行的命令不是read时(在bash脚本中执行其他命令时),字符会显示在终端中。 这是终端程序的正常行为...

9得票3回答
编译为C99时未定义CRTSCTS。

我正在树莓派上编写串行代码并切换到C99。当我这样做时,我开始收到错误信息:"error: ‘CRTSCTS’ undeclared (first use in this function)" $ c99 -M serial01.c | grep termios.h /usr/includ...

8得票1回答
termios.c_cflag中的CLOCAL和CRTSCTS标志如何影响串口?

我想配置一个UART使用硬件流控制线RTS和CTS在Linux中。根据http://linux.die.net/man/3/termios,CRTSCTS启用RTS/CTS(硬件)流控制,而CLOCAL配置串行端口忽略调制解调器控制线。这2个标志似乎矛盾,如何使用CRTSCTS启用硬件流控制并...

9得票2回答
无法导入termios包

我正在使用Python 3.7,需要使用import termios来屏蔽密码输入。但是我无法在https://pypi.org/上找到它。 import sys, tty, termios Traceback (most recent call last): File "<py...