2017-10-04 3 views
5

Ich möchte nur einen Prozess, um die PTY-Gerät von Socat erstellt zu öffnen. Ich habe Folgendes verwendet, um my_ser Gerät zu erstellen, aber es kann von mehreren Prozessen gelesen/geschrieben werden.Socat exklusive Sperre auf PTY

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

versuchte ich socat -t 0 INTERFACE:my_nw,type=2 PTY,mode=0777,rawer,link=/dev/my_ser,ioctl-void=0x540c zu verwenden, um die PTY exklusive Sperre (TIOCEXCL) verwendet, aber es funktioniert nicht. Ich kann sehen, dass die IOCTL ausgeführt wird, aber ohne Wirkung.

ich auf Ubuntu-Rechner leite

+0

Was versuchen Sie als solche zu erreichen? –

+0

Das Zeichen PTY-Gerät erstellt/dev/my_ser sollte nicht von zwei Anwendungen geöffnet werden. Dieses Gerät übersetzt den seriellen Schreibvorgang in eine Netzwerkschnittstelle. – Raj

+0

Sehen Sie, ob dieser Test eine Hilfe ist? https://github.com/craSH/socat/blob/c20699fced66696e243d785fdfcd2a94cf11e4cc/test.sh#L10568 –

Antwort

5

ich näher jetzt die TIOCEXCL Flagge verstanden. Die Anwendung, die das PTY-Terminal öffnet, sollte dieses Flag verwenden, um die exklusive Sperre zu erhalten. Wenn wir es während der PTY-Erstellung im socat-Befehl verwenden, hat es keine Wirkung. Aber es gibt auch keinen Fehler.

Daher sollte die Anwendung das ioctl Flag aufrufen und es sollte von hier entfernt werden.