同一 USB 串行转换器中有 2 个或更多程序

同一 USB 串行转换器中有 2 个或更多程序

假设有一个由 10 个 RS-485 设备组成的网络,通过 RS-485 转 USB 转换器连接到 Linux PC。

已经有一个 C 程序与 /dev/ttyUSB0 处的串行转换器交互。

我的问题是,如果 2 个或更多程序与同一个 /dev/ttyUSB0 交互会发生什么?

Linux 会自动锁定 /dev/ttyUSB 以便只有一个程序使用它吗?

答案1

简而言之:这两个程序都无法正常工作。两个程序的输出将被合并并从串行端口发送出去。通过串行端口进入的输入将仅被一个程序看到(一些输入将随机地到达其中一个程序,一些输入将随机地到达另一个程序)。

因此,通常使用串行端口的程序(传统上是 uucp,最近有 pppd 和终端仿真器)已经实现了某种锁定。它是一种咨询锁定(非强制),使用某些预配置的全局目录(例如 /var/lock)中的锁定文件。

相关内容