MacOS: Was ist der Unterschied zwischen /dev/tty.* und /dev/cu.*?

87

Jedes serielle Gerät wird zweimal angezeigt /dev, einmal als tty.*und einmal als cu.*.

Was ist das cu.*Gerät? Wie unterscheidet es sich vom tty.*Gerät?

mh@maru ~ --> ls -l /dev/*.usbmodem621
crw-rw-rw-  1 root  wheel   11,   5 Dec 25 18:00 /dev/cu.usbmodem621
crw-rw-rw-  1 root  wheel   11,   4 Dec 25 18:00 /dev/tty.usbmodem621
Mark Harrison
quelle

Antworten:

94

http://lists.berlios.de/pipermail/gpsd-dev/2005-April/001288.html :

Die Idee ist, Software durch die gemeinsame Nutzung einer Leitung zwischen eingehenden und ausgehenden Anrufen zu ergänzen. Das Callin-Gerät (normalerweise / dev / tty *) wird für eingehenden Datenverkehr verwendet. Jeder Prozess, der versucht, ihn zu öffnen, blockiert innerhalb des Aufrufs open (), solange DCD nicht von der Hardware aktiviert wird (dh solange das Modem keinen Träger hat). Währenddessen kann das Callout-Gerät (normalerweise steht / dev / cu * - cu für "Calling Unit") frei verwendet werden. Das Öffnen von / dev / cu * erfordert nicht, dass DCD aktiviert wird, und ist sofort erfolgreich. Sobald dies erfolgreich war, wird das blockierte open () auf dem Callin-Gerät angehalten und kann nicht einmal abgeschlossen werden, wenn DCD ausgelöst wird, bis das cu-Gerät wieder geschlossen wird.

Auf diese Weise können Sie / dev / tty * gut hören und / dev / cu * weiterhin ohne Einschränkungen verwenden.

Tom van der Woerdt
quelle
Danke Tom, genau das musste ich wissen.
Mark Harrison
Richtig, ein Fall, in dem dies wichtig ist, wenn Sie (unter Unix und Freunden) 'cat' verwenden möchten, um Daten der seriellen Schnittstelle in einer Datei wie 'cat /dev/cu.xxxx> file.txt' zu erfassen, die nicht mit 'funktioniert. tty. ' wegen der Blockierung. Zumindest nicht auf MacOs.
Nyholku
Ich konnte Sachen durch tty verschicken. Warum ist das so?
StackOverflowOfficial