2017-10-04 11 views
5

Sadece bir işlemin, socat tarafından oluşturulan PTY cihazını açmasını istiyorum. my_ser aygıtını oluşturmak için aşağıdakileri kullandım, ancak birden çok işlem tarafından okunabilir/yazılabilir. Socat özel kilidi PTY'ye

socat -t 0 INTERFACE:my_nw,type=2 PTY,mode=0777,rawer,link=/dev/my_ser

Ben PTY özel kilit (TIOCEXCL) kullanmak için socat -t 0 INTERFACE:my_nw,type=2 PTY,mode=0777,rawer,link=/dev/my_ser,ioctl-void=0x540c kullanılan çalıştı, ama çalışmıyor. Yürütülen IOCTL'yi ancak hiçbir etkisi olmadan görebiliyorum.

Ben daha ayrıntılı olarak şimdi TIOCEXCL bayrağını anlaşılan

+0

Neye ulaşmaya çalışıyorsunuz? –

+0

PTY aygıtının oluşturduğu/dev/my_ser karakterinin iki uygulama tarafından açılmaması gerekir. Bu cihaz seri yazımı bir ağ arayüzüne çeviriyor. – Raj

+0

Bu testin herhangi bir yardımı olup olmadığını kontrol edin. https://github.com/craSH/socat/blob/c20699fced66696e243d785fdfcd2a94cf11e4cc/test.sh#L10568 –

cevap

5

Ubuntu makinede çalıştırıyorum. PTY terminalini açan uygulama, özel kilidi elde etmek için bu bayrağı kullanmalıdır. Sosy komutunda PTY oluşturma sırasında kullanırsak, bunun bir etkisi yoktur. Ancak, herhangi bir hata vermez. Böylece uygulama ioctl bayrağını çağırmalı ve buradan çıkartılmalıdır.

İlgili konular