我希望只有一个进程可以打开 socat 创建的 PTY 设备。 我使用以下内容创建了
my_ser
设备,但它可以由多个进程读取/写入。
socat -t 0 INTERFACE:my_nw,type=2 PTY,mode=0777,rawer,link=/dev/my_ser
我尝试使用
socat -t 0 INTERFACE:my_nw,type=2 PTY,mode=0777,rawer,link=/dev/my_ser,ioctl-void=0x540c
使用PTY独占锁(TIOCEXCL),但是不起作用。
我可以看到 IOCTL 正在执行,但没有任何效果。
我在 Ubuntu 机器上运行
我现在更详细地了解了 TIOCEXCL 标志。打开 PTY 终端的应用程序应使用此标志来获取排他锁。如果我们在 socat 命令中创建 PTY 期间使用它,则没有任何效果。但它也没有给出任何错误。
因此应用程序应该调用 ioctl 标志,并且应该从这里删除它。