国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

Linux TTY設備通訊VTIME與VMIN

2019-11-08 03:18:42
字體:
來源:轉載
供稿:網(wǎng)友

linux TTY編程時會涉及到 termios 結構,其中c_cc數(shù)組里面,有 VTIME 和 VMIN 下標。關于他們的使用經(jīng)常令人迷惑,查閱了不少博客,上面的講解也有不少誤區(qū)。

在這里重新對這二者關系進行介紹。結合實驗會令人記憶更深刻。

VTIME 和 VMIN 的值只能用于非標準模式,兩者結合起來共同控制對輸入的讀取。此外,兩者結合使用還能控制在一個程序試圖讀取與一個終端關聯(lián)的文件描述符時將發(fā)生的情況。

兩者結合使用分為下面4種情況:

VMIN = 0 和 VTIME = 0 :在這種情況下,read 調(diào)用總是立刻返回。如果有等待處理的字符,read 就會立刻返回;如果沒有字符等待處理,read 調(diào)用返回0,并且不讀取任何字符;VMIN = 0 和 VTIME > 0 :在這種情況下,只要有字符可以處理或者是經(jīng)過 VTIME 個十分之一秒的時間間隔,read 調(diào)用就返回。如果因為超時而未讀到任何字符,read 返回0,否則 read 返回讀取的字符數(shù)目。VMIN > 0 和 VTIME = 0 :在這種情況下,read 調(diào)用將一直等待,直到有 MIN 個字符可以讀取時才返回,返回值是讀取的字符數(shù)量。到達文件尾時返回0。VMIN > 0 和 VTIME > 0 :在這種情況下,當 read 被調(diào)用時,它會等待接收一個字符。在接收到第一個字符及后續(xù)的每個字符后,一個字符間隔定時器被啟動(如果定時器已經(jīng)運行,則重啟它)。當有 MIN 個字符可讀或兩個字符之間的時間間隔超過 TIME 個十分之一秒時,read 調(diào)用返回。這個功能可用于區(qū)分是單獨按下了 Escape 鍵還是按下一個 Escape 鍵開始的功能組合鍵。但要注意的是,網(wǎng)絡通信或處理器的高負載將使得類似這樣的定時器失去作用。

通過設置非標準模式與使用的 VMIN 和 VTIME 值,程序可以逐個字符地處理輸入。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 靖宇县| 滕州市| 聂拉木县| 馆陶县| 尉氏县| 临江市| 鄯善县| 东丰县| 珠海市| 景德镇市| 井研县| 涟源市| 宁蒗| 鄄城县| 陇南市| 会泽县| 凤台县| 腾冲县| 吉木乃县| 岑巩县| 广汉市| 牟定县| 大关县| 高青县| 芜湖县| 天台县| 张家港市| 凤庆县| 灌云县| 鹤山市| 二连浩特市| 阳谷县| 山西省| 沭阳县| 霍林郭勒市| 同江市| 通江县| 常德市| 阳江市| 滦平县| 龙州县|