Linux 串行通信中文件的信号结束

Linux 串行通信中文件的信号结束,linux,terminal,Linux,Terminal,我需要发送什么控制字符才能使串行客户端接收文件结束或流结束结果?有这样的事吗?例如,如果我只是简单地将一个串行设备cat到一个文件中,那么当某个字符被发送时,cat程序是否有可能接收文件的末尾,从而使其存在?也许是某种特殊的环境 (我甚至不知道这个问题怎么说)基本上我想定义一个字符,当发送设备发送时,它将在接收设备返回文件的末尾进行读取调用。我想它一定是一个终端设置,而不是终端程序的一个功能 关键是显式禁用终端上的原始模式,然后从发送uart发送\x04字符(传输结束)以发出流结束的信号 stt

我需要发送什么控制字符才能使串行客户端接收文件结束或流结束结果?有这样的事吗?例如,如果我只是简单地将一个串行设备cat到一个文件中,那么当某个字符被发送时,cat程序是否有可能接收文件的末尾,从而使其存在?也许是某种特殊的环境


(我甚至不知道这个问题怎么说)基本上我想定义一个字符,当发送设备发送时,它将在接收设备返回文件的末尾进行读取调用。我想它一定是一个终端设置,而不是终端程序的一个功能

关键是显式禁用终端上的原始模式,然后从发送uart发送\x04字符(传输结束)以发出流结束的信号

stty -F <device> -raw <baud> 
cat <device>
stty-F-raw
猫

当发送端发送0x04值时,“cat”将退出,该值由串行驱动器内部处理,而不是在终端未处于原始模式时传递给程序

请不要在问题的标题中添加“已解决”。这可以通过选择帮助您解决问题的答案旁边的复选标记来表示。这似乎对我不起作用。我可以看到在使用picocom时传输的
\x04
字节(带有
--imap spchex
功能),在使用
stty
后,hd也没有显示它们(因此我假设它们在某个地方被处理,在烹调模式下,即使用
stty raw
,它们在
hd
中显示)。但是,cat不会退出。需要注意的是,
\x04
字符后面必须跟一个换行符才能正确注册。)