Linux I O多路轉接之應用

2021-08-28 10:56:34 字數 581 閱讀 8907

#include #include #include #include #include #include #include int main()

/* 清空描述符集,新增裝置檔案描述符到該描述符集 */

fd_zero(&rdfds);

fd_set(fd, &rdfds);

select(fd_setsize, &rdfds, null, null, null);

/* select函式返回後提示 */

fprintf(stdout, "select return\n");

/* 如果可讀則讀乙個字元,加1後輸出 */

if (fd_isset(fd, &rdfds))

c++;

fprintf(stdout, "%c\n", c);

} exit(0);

}

先在後台執行test程式,再用echo指令向裝置檔案寫入字元『r』,之後可以看到select函式返回,讀出r後將其改為s輸出。

Linux I O多路轉接select

系統提供select函式來實現多路復用輸入 輸出模型,那為什麼提供select函式?首先要知道乙個概念,一次i o分兩個部分 等待資料就緒 進行i o 減少等待資料的的比重,增加i o的比重就可以達到高效伺服器的目的。select工作原理就是減少等的比重,同時監控多個檔案描述符 或者說檔案控制代碼 ...

Linux I O多路轉接poll

不同與select使用三個點陣圖來表示三個fdset的方式,poll使用 乙個 pollfd的指標實現。poll函式和select函式的任務相似 等待一組檔案描述符來準備執行i 0。引數 1 第乙個引數 fds struct pollfd 2 第二個引數 nfds nfds用來表示要監視檔案描述符的...

Linux IO多路復用 多路轉接

io多路復用 多路轉接 在沒有io多路復用技術前,程序在同一時間只能監控乙個io狀態 乙個檔案描述符的狀態 例如a和b兩個檔案在操作,定的順序是a前b後,那麼在a阻塞過程中 b在後面也是不能被操作的,這樣會造成資源浪費 響應緩慢。io多路復用 同時監控多個io檔案描述符狀態,如果沒有準備好的描述符 ...