国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 加查县| 河西区| 定南县| 陇川县| 南涧| 慈溪市| 崇义县| 怀化市| 平和县| 香格里拉县| 抚宁县| 南阳市| 浦县| 永定县| 丰城市| 汝南县| 溆浦县| 南开区| 阿拉善右旗| 遂平县| 曲阳县| 黄平县| 寻甸| 佛山市| 息烽县| 扬中市| 中江县| 固始县| 酉阳| 吴川市| 商水县| 鹿邑县| 沈丘县| 龙山县| 南川市| 马鞍山市| 蒙城县| 广西| 耒阳市| 明水县| 万源市|