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

2022-08-17 21:24:08 字數 1131 閱讀 3308

vtime定義要求等待的時間量(取值不能大於cc_t)。

vmin定義了要求等待的最小位元組數。

options.c_cc[vtime] = x;   //設定從獲取到1個位元組後開始計時的超時時間

options.c_cc[vmin] = y;     //設定要求等待的最小位元組數

原始模式下對read()函式的影響:

1、x=0,y!=0。函式read()只有在讀取了y個位元組的資料或者收到乙個訊號的時候才返回;

2、x!=0,y=0。即使沒有資料可以讀取,read()函式等待x時間量後返回;

3、x!=0,y!=0。第乙個位元組資料到時開始,最先滿足收到y個位元組或達超時時間x任意乙個條件,read()返回;

4、x=0,y=0。即使讀取不到任何資料,函式read也會立即返回。

示例:通過串列埠連id卡讀卡器,要求讀串列埠至少收6個位元組資料立即返回,可以將串列埠的上述兩個設定項設定如下:

options.c_cc[vtime]=0;

options.c_cc[vmin]=6;

x == 10表示超時時間為1秒

vtime定義要求等待的時間量(取值不能大於cc_t)。

vmin定義了要求等待的最小位元組數。

options.c_cc[vtime] = x;   //設定從獲取到1個位元組後開始計時的超時時間

options.c_cc[vmin] = y;     //設定要求等待的最小位元組數

原始模式下對read()函式的影響:

1、x=0,y!=0。函式read()只有在讀取了y個位元組的資料或者收到乙個訊號的時候才返回;

2、x!=0,y=0。即使沒有資料可以讀取,read()函式等待x時間量後返回;

3、x!=0,y!=0。第乙個位元組資料到時開始,最先滿足收到y個位元組或達超時時間x任意乙個條件,read()返回;

4、x=0,y=0。即使讀取不到任何資料,函式read也會立即返回。

示例:通過串列埠連id卡讀卡器,要求讀串列埠至少收6個位元組資料立即返回,可以將串列埠的上述兩個設定項設定如下:

options.c_cc[vtime]=0;

options.c_cc[vmin]=6;

x == 10表示超時時間為1秒

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指定了等待的時間,vmin指定了讀取字元的最小數量。它們不同組合地取值會得到不同的結果,分別如下 1 當vtime 0,vmin 0時。read呼叫將保持阻塞直到讀取到第乙個字元,讀到了第乙個字元之後開始計時,此後若時間到了vtime或者時間未到但已讀夠了vmin個字元則會返回 若在時間未...