MacOS: ¿cuál es la diferencia entre /dev/tty.* y /dev/cu.*?

88

Cada dispositivo serie aparece dos veces /dev, una vez como un tty.*y una vez como un cu.*.

¿Qué es el cu.*dispositivo? ¿En qué se diferencia del tty.*dispositivo?

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
fuente

Respuestas:

96

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

La idea es complementar el software para compartir una línea entre las llamadas entrantes y salientes. El dispositivo de llamada (normalmente / dev / tty *) se utiliza para el tráfico entrante. Cualquier proceso que intente abrirlo se bloquea dentro de la llamada open () siempre que DCD no esté confirmado por hardware (es decir, siempre que el módem no tenga un operador). Durante esto, el dispositivo de llamada (típicamente / dev / cu * - cu significa "unidad de llamada") se puede usar libremente. Abrir / dev / cu * no requiere que se confirme DCD y se realiza correctamente de inmediato. Una vez que se haya logrado, la apertura bloqueada () en el dispositivo de llamada se suspenderá y ni siquiera podrá completarse cuando se suba el DCD, hasta que el dispositivo cu se cierre nuevamente.

De esa manera, puede tener un getty escuchando en / dev / tty * y aún puede usar / dev / cu * sin restricciones.

Tom van der Woerdt
fuente
Gracias Tom, eso es justo lo que necesitaba saber.
Mark Harrison
Correcto, un caso en el que este problema es si desea usar (en Unix y amigos) 'cat' para capturar datos del puerto serie en un archivo como 'cat /dev/cu.xxxx> file.txt' que no funciona con ' tty. ' debido al bloqueo. Al menos no en MacOs.
nyholku
Pude enviar cosas a través de tty. ¿Porqué es eso?
StackOverflowOfficial