C Linux串行端口(tty)重定向

C Linux串行端口(tty)重定向,c,linux,module,serial-port,C,Linux,Module,Serial Port,我有一个关于Linux和串口的问题 我希望能够将消息接收和发送到专用串行端口,并将其重定向到另一个端口(/dev/tty) 对于第一部分,我能够与我的硬件设备进行对话,没有任何问题,但我只是想知道是否有可能拦截并重定向来自串行端口1的消息到另一个端口2 为了提供更多信息,我多年来一直使用GPS天线和NTP开源软件 自2018年以来,新的GPS天线协议修改了NTP用于转向的消息中的字节顺序,现在不再工作 所以我的想法是放一个简单的C程序(中间件)来修复这个字节顺序;但是我想知道我是否必须构建一个特

我有一个关于Linux和串口的问题

我希望能够将消息接收和发送到专用串行端口,并将其重定向到另一个端口(/dev/tty)

对于第一部分,我能够与我的硬件设备进行对话,没有任何问题,但我只是想知道是否有可能拦截并重定向来自串行端口1的消息到另一个端口2

为了提供更多信息,我多年来一直使用GPS天线和NTP开源软件

自2018年以来,新的GPS天线协议修改了NTP用于转向的消息中的字节顺序,现在不再工作

所以我的想法是放一个简单的C程序(中间件)来修复这个字节顺序;但是我想知道我是否必须构建一个特定于内核的模块,或者是否可以用另一种方式来实现。NTP软件使用符号链接到对话框


谢谢您的帮助。

您可能可以使用一个简单的重定向,请看这里:

如果端口的速率不同,您可以使用stty或屏幕进行调整:

如果需要在c程序中对其进行操作,可以使用以下方法:

使用c语言,它需要在一个无限循环中运行,以便能够不断地读取、操作和写入数据。

IMO可能没有一个“简单的c程序可以修复这个字节顺序”。您将如何(稳健地)识别高阶字节和低阶字节?“我想知道是否必须构建一个特定于内核的模块”——通常在Linux中,您不希望访问实际的“串行端口”或UART,而是希望访问一个串行终端设备节点,例如/dev/ttyS0及其termios接口。请参阅“如果您需要在c程序中对其进行操作,您可以使用以下命令:…”——您提供了一个指向“劣等”答案的链接(其中有更多问题投诉)。