Linux串口c_cc[VTIME]和c_cc[VMIN]屬性設定的作用

來源:互聯網
上載者:User

在串口編程模式下,open未設定O_NONBLOCK或O_NDELAY的情況下。

c_cc[VTIME]和c_cc[VMIN]映像read函數的返回。

VTIME定義等待的時間,單位是百毫秒(通常是一個8位的unsigned char變數,取值不能大於cc_t)。

VMIN定義了要求等待的最小位元組數,這個位元組數可能是0。

如果VTIME取0,VMIN定義了要求等待讀取的最小位元組數。函數read()只有在讀取了VMIN個位元組的資料或者收到一個訊號的時候才返回。

如果VMIN取0,VTIME定義了即使沒有資料可以讀取,read()函數返回前也要等待幾百毫秒的時間量。這時,read()函數不需要像其通常情況那樣要遇到一個檔案結束標誌才返回0。

如果VTIME和VMIN都不取0,VTIME定義的是當接收到第一個位元組的資料後開始計算等待的時間量。如果當調用read函數時可以得到資料,計時器 馬上開始計時。如果當調用read函數時還沒有任何資料可讀,則等接收到第一個位元組的資料後,計時器開始計時。函數read可能會在讀取到VMIN個位元組 的資料後返回,也可能在計時完畢後返回,這主要取決於哪個條件首先實現。不過函數至少會讀取到一個位元組的資料,因為計時器是在讀取到第一個資料時開始計時 的。

如果VTIME和VMIN都取0,即使讀取不到任何資料,函數read也會立即返回。同時,傳回值0表示read函數不需要等待檔案結束標誌就返回了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.