0
後我有以下代碼:FD_ISSET返回0 FD_SET
FD_SET(mc_sock, &readfds);
foo = FD_ISSET(mc_sock, &readfds); // returns 1
// Wait until some socket on the set is ready to be read
while(select (FD_SETSIZE,&readfds,NULL,NULL,ptv)) {
foo = FD_ISSET(mc_sock, &readfds); // returns 0
我添加mc_sock到readfds和FD_ISSET如預期返回1。然而,稍後當while循環FD_ISSET返回0而不調用FD_CLR時。 當我運行MobileC服務器時代碼跳轉到while,但代碼運行時沒有任何FD_CLR。 我在集合和文件描述符中是一個新手,我還沒有發現發生了什麼。你有好主意嗎?
謝謝!的select(2)
什麼是'ptv'?你如何初始化它? –
此外,'select'可以返回負值,您必須**檢查它們並檢查'errno'。 –