IO多路復用之select

int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);	

分析:?

  • ?nfds:? ? ? ? ? ? 監控的文件描述符集里最大文件描述符加1,因為此參數會告訴內核檢測前多少個文件描述符的狀態
  • ?readfds:???監控有讀數據到達文件描述符集合,傳入傳出參數
  • writefds:?? ?監控寫數據到達文件描述符集合,傳入傳出參數
  • exceptfds:監控異常發生達文件描述符集合,如帶外數據到達異常,傳入傳出參數
  • ?timeout:? ?定時阻塞監控時間
void FD_CLR(int fd, fd_set *set);     //把文件描述符集合里fd清0
int FD_ISSET(int fd, fd_set *set);    //測試文件描述符集合里fd是否置1
void FD_SET(int fd, fd_set *set);     //把文件描述符集合里fd位置1
void FD_ZERO(fd_set *set);            //把文件描述符集合里所有位清0

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/385437.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/385437.shtml
英文地址,請注明出處:http://en.pswp.cn/news/385437.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

1031. 查驗身份證(15)

一個合法的身份證號碼由17位地區、日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下: 首先對前17位數字加權求和,權重分配為:{7,9,10,5,8,4,2,1&…

虛擬地址空間

對于每一個進程都會對應一個虛擬地址空間,對于32位的操作系統(其指令的位數最大為32位,因此地址碼最多32位),虛擬地址空間的大小為B即0~4GB的虛擬地址空間,其中內核空間為1GB,如下所示&#xff…

Leecode 69. x 的平方根

實現 int sqrt(int x) 函數。 計算并返回 x 的平方根,其中 x 是非負整數。 由于返回類型是整數,結果只保留整數的部分,小數部分將被舍去。 示例 1: 輸入: 4 輸出: 2 示例 2: 輸入: 8 輸出: 2 說明: 8 的平方根是 2.82842..., 由于返回類…

1002. 寫出這個數 (20)

讀入一個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。 輸入格式:每個測試輸入包含1個測試用例,即給出自然數n的值。這里保證n小于10100。 輸出格式:在一行內輸出n的各位數字之和的每一位,拼…

C/C++中NULL指針

先談一下C/C的強制類型轉換Type cast。與強制類型轉換相對應的是自動類型轉換。或者強制類型轉換叫顯示類型轉換,自動類型轉換叫隱式類型轉換。自動類型轉換會在賦值運算、混合運算、參數傳遞、返回函數返回值、格式化輸出時且當類型出現不一致時發生,轉…

1009. 說反話 (20)

給定一句英語,要求你編寫程序,將句中所有單詞的順序顛倒輸出。 輸入格式:測試輸入包含一個測試用例,在一行內給出總長度不超過80的字符串。字符串由若干單詞和若干空格組成,其中單詞是由英文字母(大小寫有區…

動態庫(共享庫)的制作和使用

Linux下的動態庫為lib*.so格式的二進制文件(目標文件),對應于Windows下的.dll格式的文件。 (1)命名規則 lib庫名.so (2)動態庫的制作 1)生成與位置無關的代碼(.o&…

孤兒進程、僵尸進進程

一、兒進程與僵尸進程 1、基本概念 我們知道在unix/linux中,正常情況下,子進程是通過父進程創建的,子進程在創建新的進程。子進程的結束和父進程的運行是一個異步過程,即父進程永遠無法預測子進程 到底什么時候結束。 當一個 進程完成它的工…

管道 -pipe

gcc編譯器將源代碼編譯成可執行程序的過程中,需要經過許多中間步驟(預處理、編譯、匯編、鏈接),這些過程實際上是由不同的程序來負責完成的(/usr/bin/gcc、cpp、ccl、as和ld等)。在這個過程的每一個階段中&…

gdb調試器(一)

在默認情況下,gcc在編譯時不會把調試符號插入到最終生成的二進制代碼(機器代碼)中,因為這樣會急劇增加可執行程序的大小。如果需要在編譯時生成調試符號的信息,則可以采用-g或-ggdb參數。 gcc在產生調試信息時&#x…

1048. 數字加密(20)

本題要求實現一種數字加密方法。首先固定一個加密用正整數A,對任一正整數B,將其每1位數字與A的對應位置上的數字進行以下運算:對奇數位,對應位的數字相加后對13取余——這里用J代表10、Q代表11、K代表12;對偶數位&…

網絡編程套接字API

uint32_t htonl(uint32_t hostlong); uint16_t htons(uint16_t hostshort); uint32_t ntohl(uint32_t netlong); uint16_t ntohs(uint16_t netshort);int inet_pton(int family, const char *strptr, void *addrptr); 分析: 第一個參數可以是AF_INET或AF_INET6&am…

gdb調試器(二)

Linux下的gdb(GNU Debugger)是一個用來調試C、C程序的調試器(命令行方式的調試器),能夠在程序運行期間觀察程序的內部結構和內存的使用情況。程序員也可以使用gdb來跟蹤程序中的錯誤,從而減少程序員的工作量…

gdb調試器(三)

File/file 裝入想要調試的可執行文件 run(r) 執行當前被調試的程序 kill(k) 終止正在調試的程序 quit(q) 退出gdb shell 使用戶不離開gdb就可以執行Linux的shell命令 backtrace(bt) 回溯跟蹤(當對代碼進行調試時,run后…

IO多路復用之poll

1. poll函數原型: int poll(struct pollfd *fds, nfds_t nfds, int timeout);參數: fds:指向一個結構體數組的第0個元素的指針,每個數組元素都是一個struct pollfd結構,用于指定測試某個給定的fd的條件 nfds&#x…

makefile文件的書寫規則(make和makefile)

對于makefile,掌握一個規則,兩個變量和三個函數。下面介紹一個規則。 makefile的作用:一個項目代碼的管理工具。當一個項目的代碼文件數(如.c文件)太多,用gcc編譯會太麻煩,如果全部文件一次性編…

100. 相同的樹

給定兩個二叉樹,編寫一個函數來檢驗它們是否相同。 如果兩個樹在結構上相同,并且節點具有相同的值,則認為它們是相同的。 示例 1: 輸入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3] 輸出: true…

makefile的兩個變量(自動變量和普通變量)

(1)普通變量 如: objmain.o add.o sub.o mul.o div.o //將后面的值賦值給obj,obj就是一個普通變量 targetzsx //將zsx賦值給target makefile中已經定義的一些普通變量(通常格式都是大寫,類似環境變量,它們都是普通…

【C++ Priemr | 15】虛函數表剖析(二)

一、多重繼承&#xff08;無虛函數覆蓋&#xff09; 下面&#xff0c;再讓我們來看看多重繼承中的情況&#xff0c;假設有下面這樣一個類的繼承關系。注意&#xff1a;子類并沒有覆蓋父類的函數。 測試代碼&#xff1a; class Base1 { public: virtual void f() { cout <…

1074. Reversing Linked List (25)

Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K 3, then you must output 3→2→1→6→5→4; if K 4, you must output 4→3→2→1→5→6. Input Spe…