MacOS: Apa perbedaan antara /dev/tty.* dan /dev/cu.*?

89

Setiap perangkat serial muncul dua kali /dev, sekali sebagai tty.*dan sekali sebagai cu.*.

Apa cu.*perangkatnya? Apa bedanya dengan tty.*perangkat?

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
sumber

Jawaban:

97

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

Idenya adalah untuk melengkapi perangkat lunak dalam berbagi garis antara panggilan masuk dan keluar. Perangkat callin (biasanya / dev / tty *) digunakan untuk lalu lintas masuk. Setiap proses yang mencoba membukanya memblokir dalam panggilan open () selama DCD tidak ditetapkan oleh perangkat keras (misalnya, selama modem tidak memiliki operator). Selama ini, perangkat callout (biasanya / dev / cu * - cu adalah singkatan dari "unit pemanggil") dapat digunakan secara bebas. Membuka / dev / cu * tidak membutuhkan DCD untuk dijalankan dan langsung berhasil. Setelah berhasil, buka () yang diblokir pada perangkat callin akan ditangguhkan, dan bahkan tidak dapat diselesaikan saat DCD dinaikkan, sampai perangkat cu ditutup kembali.

Dengan begitu, Anda bisa mendengarkan dengan cepat / dev / tty *, dan masih bisa menggunakan / dev / cu * tanpa batasan.

Tom van der Woerdt
sumber
Terima kasih Tom, itulah yang perlu saya ketahui.
Mark Harrison
Benar, satu kasus di mana masalah ini adalah jika Anda ingin menggunakan (di Unix dan teman-teman) 'cat' untuk menangkap data port serial ke file seperti 'cat /dev/cu.xxxx> file.txt' yang tidak berfungsi dengan ' tty. ' karena pemblokiran. Setidaknya tidak di MacOs.
nyholku
Saya bisa mengirim barang melalui tty. Mengapa demikian?
StackOverflowOfficial
@ MarkHarrison dan Tom: jadi, dalam banyak kasus, jika saya menulis program non-mewah untuk berbicara dengan port serial, saya berasumsi bahwa saya harus menggunakan perangkat / dev / tty *, benar?
ptdecker