[問題] select使用在多個設備

看板C_and_CPP作者 (科科)時間11年前 (2014/02/21 12:35), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
板上的前輩們好 我目前想做的程式是檢查多個設備是否有值輸入 我的設定如下: fd_set fd; f1=open("file1",O_RDWR); .(打開我要的檔案) . . FD_SET(f1,&fd); .(其他同樣都給fd) . . rc=select(max+1,&fd,NULL.NULL,&time);//max為全部file的最大值 if(FD_ISSET(f1,&fd)) {... } if(FD_ISSET(f2,&fd)) {... } . . 想請問在select後的(有設備傳值)rc有可能會一直都是"1"嗎? 還有兩個設備同時傳值,我的只會出現其中一個設備的值,想請問是哪個參數做不對? 不好意思程式碼不在身邊不能直接貼上 資訊不足的地方請盡量說 麻煩各位了 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 182.234.32.161

02/22 01:10, , 1F
兩次call select間好像要FD_ZERO清空fd_set?
02/22 01:10, 1F

02/22 13:19, , 2F
有~ 在FD_SET的上方我的程式有加FD_ZERO(&fd)
02/22 13:19, 2F

02/24 22:57, , 3F
我再加上FD_SET(0,&fd)就可抓到兩個 可是我不懂為什麼
02/24 22:57, 3F

02/26 08:54, , 4F
time 值每次 select 前都要重設
02/26 08:54, 4F

02/26 08:56, , 5F
FD_SET(0,&fd) //0是stdin
02/26 08:56, 5F
文章代碼(AID): #1J1qWLGn (C_and_CPP)