2
我知道使用帶有FIONREAD的ioctl可以獲得串口輸入緩衝區中的字節數,例如在「POSIX操作系統串行編程指南」(鏈接:http://www.cmrr.umn.edu/~strupp/serial.html#5_1_3)中所示。有沒有辦法爲輸出緩衝區做同樣的事情?Unix串口編程:如何獲取輸出緩衝區中的字節數?
我問,因爲我想知道何時傳輸了所有字節。
在Windows上,這可以通過查看COMSTAT結構中的cbOutQue來完成,但是我仍然沒有找到在基於Unix的系統中這樣做的方法。
謝謝。讀取ioctl的TIOCOUTQ始終返回0。這是因爲Mac OS X不支持它嗎?我無法在Internet上找到關於TIOCOUTQ的許多信息... – pvh1987
基於此[man-page](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man4/tty .4.html)看起來像Mac OS X至少支持v10.9的TIOCOUTQ。 爲確保您獲得非零輸出緩衝區隊列大小,您可能需要啓用硬件流控制(RTS/CTS)並斷開物理串行電纜連接,然後我認爲在寫入串行端口。 – d99kris
謝謝:-)好主意用RTS/CTS流量控制進行測試。經過一些測試後我會回來的。 – pvh1987