Linux下串列埠引數VTIME和VMIN的用法

2021-10-08 10:44:31 字數 436 閱讀 7731

vtime指定了等待的時間,vmin指定了讀取字元的最小數量。

它們不同組合地取值會得到不同的結果,分別如下:

1.當vtime>0,vmin>0時。read呼叫將保持阻塞直到讀取到第乙個字元,讀到了第乙個字元之後開始計時,此後若時間到了vtime或者時間未到但已讀夠了vmin個字元則會返回;若在時間未到之前又讀到了乙個字元(但此時讀到的總數仍不夠vmin)則計時重新開始。

2. 當vtime>0,vmin=0時。read呼叫讀到資料則立即返回,否則將為每個字元最多等待vtime時間。

3. 當vtime=0,vmin>0時。read呼叫一直阻塞,直到讀到vmin個字元後立即返回。

4. 若在open或fcntl設定了o_ndelaly或o_nonblock標誌,read呼叫不會阻塞而是立即返回,那麼vtime和vmin就沒有意義,效果等同於與把vtime和vmin都設為了0。

linux 下串列埠程式設計VTIME和VMIN的設定

vtime定義要求等待的時間量 取值不能大於cc t vmin定義了要求等待的最小位元組數。options.c cc vtime x 設定從獲取到1個位元組後開始計時的超時時間 options.c cc vmin y 設定要求等待的最小位元組數 在原始模式下對read 函式的影響 1 x 0,y 0...

linux 下串列埠程式設計VTIME和VMIN的設定

1 串列埠的配置 struct termios options 串列埠配置結構體 tcgetattr fd,options 獲取當前設定 bzero options,sizeof options options.c cflag b115200 clocal cread 設定波特率,本地連線,接收使能...

linux 下串列埠程式設計VTIME和VMIN的設定

vtime定義要求等待的時間量 取值不能大於cc t vmin定義了要求等待的最小位元組數。options.c cc vtime x 設定從獲取到1個位元組後開始計時的超時時間 options.c cc vmin y 設定要求等待的最小位元組數 在原始模式下對read 函式的影響 1 x 0,y 0...