MacOS: ความแตกต่างระหว่าง /dev/tty.* และ /dev/cu.* คืออะไร


89

อุปกรณ์อนุกรมแต่ละตัวจะแสดงสองครั้งใน/devครั้งเดียวtty.*และหนึ่งครั้งเป็น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

คำตอบ:


99

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

แนวคิดคือการเสริมซอฟต์แวร์ในการแบ่งปันสายระหว่างการโทรเข้าและโทรออก อุปกรณ์ callin (โดยทั่วไป / dev / tty *) ใช้สำหรับการรับส่งข้อมูลขาเข้า กระบวนการใด ๆ ที่พยายามเปิดบล็อกภายในการเรียก open () ตราบใดที่ DCD ไม่ได้รับการยืนยันโดยฮาร์ดแวร์ (เช่นตราบใดที่โมเด็มไม่มีผู้ให้บริการ) ในระหว่างนี้สามารถใช้อุปกรณ์ไฮไลต์ (โดยทั่วไป / dev / cu * - cu ย่อมาจาก "Calling unit") การเปิด / dev / cu * ไม่จำเป็นต้องยืนยัน DCD และประสบความสำเร็จในทันที เมื่อทำสำเร็จแล้ว open () ที่ถูกบล็อกบนอุปกรณ์ callin จะถูกระงับและไม่สามารถทำได้แม้กระทั่งเมื่อ DCD ถูกยกขึ้นจนกว่าอุปกรณ์ cu จะปิดอีกครั้ง

ด้วยวิธีนี้คุณสามารถฟังเพลงได้บน / dev / tty * และยังสามารถใช้ / dev / cu * ได้โดยไม่มีข้อ จำกัด


ขอบคุณทอมนั่นเป็นเพียงสิ่งที่ฉันต้องรู้
Mark Harrison

ถูกต้องกรณีหนึ่งที่เรื่องนี้คือถ้าคุณต้องการใช้ (ใน Unix และเพื่อน) 'cat' เพื่อจับข้อมูลพอร์ตอนุกรมไปยังไฟล์เช่น 'cat /dev/cu.xxxx> file.txt' ซึ่งใช้ไม่ได้กับ ' tty. ' เนื่องจากการปิดกั้น อย่างน้อยก็ไม่ใช่ใน MacOs
nyholku

ฉันสามารถส่งของผ่าน tty ทำไมถึงเป็นเช่นนั้น?
StackOverflowOfficial

@MarkHarrison และ Tom: ในกรณีส่วนใหญ่ถ้าฉันเขียนโปรแกรมที่ไม่แฟนซีเพื่อพูดคุยกับพอร์ตอนุกรมฉันคิดว่าฉันควรใช้อุปกรณ์ / dev / tty * ถูกต้องหรือไม่?
ptdecker
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.