由于无法使用 Linux 在两个进程之间直接共享串口,我正在寻找另一种方法来实现这一点,我听说过 socat 但找不到如何实现以下内容的具体示例:
将一个物理串口(/dev/ttyUSB0)拆分为两个虚拟端口,一个读一个写,一个进程只需要发送数据,一个进程只需要接收数据。
不幸的是,我无法修改发送应用程序。
在 Linux 中,获得对串行端口的独占访问始终是一个问题,因为限制不必要的干扰的唯一方法是用户/组访问权限。
随着时间的推移,约定已经建立,当某个进程愿意“拥有”串行端口设备时,如何告诉其他进程不要打开串行端口设备:要打开串行(并行)端口的进程首先检查锁定文件目录/tmp
(其他标准可能使用/var/lock
目录),例如 /tmp/LCK..ttyS0(对于 ttyS0 设备)并将其PID
写入该文件。然后它读回它,如果PID
匹配,那么该进程就获得了端口的所有权。当不再需要该端口后,锁定文件将被进程删除。
因此,您可以从不同的进程打开它,前提是这些进程 uids 或 gids 在设备上具有读写访问权限
归档时间: |
|
查看次数: |
22795 次 |
最近记录: |