MacOS:/dev/tty.*と/dev/cu.*の違いは何ですか?


88

各シリアルデバイスは、に2回表示され/dev、1回はaとして、tty.*もう1回はとして表示されますcu.*

cu.*デバイスは何ですか?tty.*デバイスとどう違うのですか?

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

回答:


96

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

アイデアは、着信コールと発信コールの間で回線を共有する際にソフトウェアを補完することです。コールインデバイス(通常は/ dev / tty *)が着信トラフィックに使用されます。DCDがハードウェアによってアサートされていない限り(つまり、モデムにキャリアがない限り)、open()呼び出し内でそれを開こうとするプロセスはブロックします。この間、コールアウトデバイス(通常は/ dev / cu * -cuは「コーリングユニット」を表します)を自由に使用できます。/ dev / cu *を開くと、DCDをアサートする必要がなく、すぐに成功します。成功すると、callinデバイスでブロックされたopen()は一時停止され、CUDが発生した場合でも、cuデバイスが再び閉じられるまで完了できません。

そうすれば、ゲッティが/ dev / tty *をリッスンし、制限なしで/ dev / cu *を使用できます。


トムに感謝します、それは私が知る必要があることです。
マークハリソン

正解です。この問題が発生する1つのケースは、(Unixなどで)「cat」を使用して、シリアルポートデータを「cat /dev/cu.xxxx>file.txt」のようなファイルにキャプチャする場合です。 tty。」ブロッキングのため。少なくともMacOではそうではありません。
nyholku 2018年

ttyから物を送ることができました。何故ですか?
stackOverflowOfficial
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.