int select( int amxfdp1 , fd_set* readset ,fd_set * writeset ,fd_set *exceptset , const struct timeval *timeout)
對於要測試的socket是不是每進行一次select前都要進行fd_set操作,來設定函式中的writeset及readset?
網上搜尋到的一些有關select函式的用法注意事項:
這兩天改掉了若干bug,都是關於select的使用
1,乙個伺服器程式,在select等待期間,會由於乙個錯誤連線造成混亂,查來查去原來是沒有在處理掉失敗連線的時候將此檔案描述符從等待集合中去除,在加了一句fd_clr之後,程式恢復正常工作。
2,仍然是在select等待期間,有訊號發生,之後select的工作就不再正確,原來是在訊號處理函式中斷select之後,select返回eintr錯誤,程式必須處理掉這一錯誤。
3,select可以不必無限期等待,在最後乙個引數中制定等待的時間即可,但這一時間在select返回時會被修改,因此當迴圈使用select時必須反覆給時間變數賦值
使用Select的3個注意事項
include int select int n,fd set readfds,fd set writefds,fd set exceptfds,struct timeval timeout int pselect int n,fd set readfds,fd set writefds,fd se...
使用Select的3個注意事項
include int select int n,fd set readfds,fd set writefds,fd set exceptfds,struct timeval timeout int pselect int n,fd set readfds,fd set writefds,fd se...
AudioRecord 使用小結與注意事項
使用專門的執行緒讀取資料,容易出現buffer overflow。使用 setrecordpositionupdatelistener時,要注意兩個問題 一 1.啟動錄音後,要先read buffer,才會通知啟用 listener。audiorecord startrecording audior...