使用Select的3個注意事項

2021-09-06 03:05:40 字數 747 閱讀 1697

#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_set *exceptfds, const struct timespec *timeout, const sigset_t *sigmask);

fd_clr(int fd, fd_set *set);

fd_isset(int fd, fd_set *set);

fd_set(int fd, fd_set *set);

fd_zero(fd_set *set);

注意事項:

1 每次呼叫前,重新設定所關心的描述符;

2 每次呼叫前,重新設定等待時間;

3 準備好的描述符定義為:

read/write

描述符時不會阻塞

(socket

斷開將可讀)。

解釋:1 fd_set*

以指標形式傳入,

select

將掃瞄所關心的描述符,改變其值後返回。使用者判斷此返回值得知哪些描述符可讀

/可寫。這意味著:在

select

返回後,描述符集必須重新設定!

2 timeout

以指標傳入,就是說系統不保證其值不會被更改!

使用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的使用注意事項

int select int amxfdp1 fd set readset fd set writeset fd set exceptset const struct timeval timeout 對於要測試的socket是不是每進行一次select前都要進行fd set操作,來設定函式中的wri...

select2 外掛程式使用注意事項

有問題可以參考select2的官方文件 select2 或者 github select2 position val null trigger change position為自己的select控制項的id值placeholder js example placeholder single sele...