c_cc[VTIME]和c_cc[VMIN]這兩個參數的作用始終不清楚,今天上網搜了才知道。
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;