通过以下链接引用来源: Serial_Port_Programming_How_To
我发现那里有c_cc字符配置。 在寻找感情后,我没有找到确切的答案。 我尝试注释掉这些c_cc配置的每一行,发现以下行确实会影响输出。
newtio.c_cc[VEOF] = 4;
任何人都可以解释这个的含义,也可能解释其余的含义吗?
谢谢
答案 0 :(得分:1)
根据建议,termios的手册页是一个起点:
<强> VEOF 强>
(004,EOT,Ctrl-D)文件结束字符(EOF)。更多 准确地说:这个字符导致挂起的tty缓冲区 发送到等待的用户程序而不等待行尾。如果它是该行的第一个字符,则为read(2) 在用户程序中返回0,表示文件结束。 设置ICANON时识别,然后不作为输入传递。
在给定链接3.1. Canonical Input Processing的上下文中,OP已观察到评论作业
newtio.c_cc[VEOF] = 4;
阻止^D
按预期工作。那个和类似的赋值对应于可能用于stty
的shell脚本的设置。在内部(使用 termios ),在分配0xff
时,这些值设置为未定义值,但默认0x00
几乎一样好。