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個字元則會返回 若在時間未...