每个串行设备在
/dev
中显示两次,一次作为 tty.*
,一次作为 cu.*
。
cu.*
设备是什么?它与 tty.*
设备有何不同?
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
这个想法是补充软件以共享传入和传出呼叫之间的线路。呼入设备(通常为 /dev/tty*)用于传入流量。只要硬件未断言 DCD(即只要调制解调器没有运营商),任何尝试打开它的进程都会在 open() 调用中阻塞。在此期间,呼出设备(通常为 /dev/cu* —— cu 代表“调用单元”)可以自由使用。打开 /dev/cu* 不需要断言 DCD,并且会立即成功。一旦成功,callin 设备上阻塞的 open() 将被挂起,甚至在 DCD 上升时也无法完成,直到 cu 设备再次关闭。
这样,你就可以让 getty 监听 /dev/tty*,并且仍然可以不受限制地使用 /dev/cu*。