[問題] 序列埠正確close()後無法再正常工作

作者: dces4212 (flawless)   2018-12-30 20:24:58
開發平台(Platform): GNU/Linux
編譯器: gcc 7.3.0
額外使用到的函數庫(Library Used): 無
問題(Question):初次開啟能正常運作,但程式關閉後再次開啟會卡在read函數
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):https://ideone.com/TzM5rD
補充說明(Supplement):程式功能為每秒印出從RS232收到的data的固定offset
的資料,目標裝置是不斷吐data而不接收的.使用ctrl+c
關閉程式時有handler去把序列埠的fd進行close(), 並
且有正確關閉(確定有回傳值0).比較好奇的是為什麼有正
確關閉但第二次開啟會卡在read(),而且open()是沒有
失敗的,目前解法都是重新插入裝置,然後裝置是使用
USB virtual port.還是我哪邊有漏考慮到了?
謝謝大家!
作者: dces4212 (flawless)   2018-12-30 21:04:00
補充 應該說每一秒收一次資料才對,一次收512 bytes

Links booklink

Contact Us: admin [ a t ] ucptt.com