linux串口控制read()

來源:互聯網
上載者:User
                            linux串口控制read()

        在數組c_cc中有兩個下標(VTIME和VMIN)對應的元素不是控制符,並且只是在原始的模式下才有效。串口的模式控制是通過options.c_lflag控制的,如:options.c_lflag &=~ICANON設定串口為原始模式。在原始模式下,它們決定了read()函數在什麼時候返

回。在標準的模式下,除非設定了非阻塞的模式(O_NONBLICK)選項,否則只有當遇到行結束符或者檔案結束符以後才函數讀才返回。

      VTIME定義要求等待零到幾百毫秒的時間量通常為一個8位的無符號數。VMIN定義了要求等待的最小位元組數這個位元組可能是零。  

      如果VTIME和VMIN都不為零,VTIME定義的是當接收到第一個位元組的資料後開始計算等待的時間量。如果調用read()函數時可以得到資料,計時器馬上開始計時。函數read()會讀取到VIMN位元組資料後返回也可能是計時到了後返回,取決於那個條件首先實現。

      阻塞訪問的效率通常比非阻塞訪問的效率高。阻塞訪問時不能擷取資源的進程將進入休眠,它將cpu資源讓給其他的進程去調用。非阻塞訪問時使用者擷取裝置資源只能不停的查詢,這反而無謂地耗費cpu資源。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.