ChinaUnix.net
相关文章推荐:

linux poll epoll select

by Arthursky - 移动操作系统 - 2011-12-22 08:51:16 阅读(997) 回复(0)

相关讨论

1.支持一个进程打开大数目的socket描述符(FD) select 最不能忍受的是一个进程所打开的FD是有一定限制的,由FD_SETSIZE设置,默认值是2048。对于那些需要支持的上万连接数目的IM服务器来说显 然太少了。这时候你一是可以选择修改这个宏然后重新编译内核,不过资料也同时指出这样会带来网络效率的下降,二是可以选择多进程的解决方案(传统的 Apache方案),不过虽然linux上面创建进程的代价比较小,但仍旧是不可忽视的,加上进程间数据...

by msj0520 - Linux文档专区 - 2009-11-19 09:41:54 阅读(1112) 回复(0)

select, poll和epoll的区别(转载) select()系统调用提供一个机制来实现同步多元I/O: #include sys/time.h> #include sys/types.h> #include unistd.h> int select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); 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); 调用select()将阻塞,直到指定的文件描述符准备...

by embededgood - Linux文档专区 - 2009-05-03 19:21:38 阅读(661) 回复(0)

select()系统调用提供一个机制来实现同步多元I/O: #[color="#ff0000"]include [color="#0000cc"] [color="#0000cc"]#[color="#ff0000"]include [color="#0000cc"] [color="#0000cc"]#[color="#ff0000"]include [color="#0000cc"] [color="#0000ff"]int [color="#ff0000"]select [color="#0000cc"]([color...

by liujianping - Linux文档专区 - 2009-03-19 18:27:44 阅读(666) 回复(0)

请问大家:为什么select的并发会限制为一个进程所能打开的最大文件数,而poll,epoll则被限制为系统可以打开的总的文件数。是因为poll和epoll使用自定义的struct来存储fd吗? 但我感觉这与select直接存储fd在本质上是一样的。poll用struct pollfd的一个属性来存储fd,而epoll用struct epoll_event中的data这个union变量的fd来存储文件描述符,这与select直接存储文件描述符在本质上有什么区别呢?为什么select就被限制在单进程所能...

by neilhappy - Linux环境编程 - 2013-04-24 09:31:32 阅读(2371) 回复(7)

场景:在一个时间内(比如10s),不断地从某几个sock fd读数据 那么用select while (true) { select(max_fd+1, &read_fds, NULL, NULL, &tmval_10s); do_sth(); } 这样tmval_10s每次调用后都后减小,直到超时为止 而poll和epoll的超时参数是传值的,每次都得重设??

by txdgtwpv - Linux环境编程 - 2011-12-28 11:31:54 阅读(2086) 回复(3)

select ,poll,epoll阻塞方式的差别和效率

by zmcjs - Linux环境编程 - 2007-03-23 21:29:02 阅读(2713) 回复(0)

linuxselectpoll的用法 2009-05-07 20:06 select()函数的作用 系统调用selectpoll的后端实现,用这两个系统调用来查询设备是否可读写,或是否处于某种状态。如果poll为空,则驱动设备会被认为即可读又可写,返回值是一个状态掩码 如何使用select()函数? select()函数的接口主要是建立在一种叫'fd_set'类型的基础上。它('fd_set') 是一组文件描述符(fd)的集合。由于fd_set类型的长度在不同平台上不同,因此应该...

by config2010 - Linux文档专区 - 2009-12-24 10:52:16 阅读(1270) 回复(1)

linuxselectpoll的用法select()函数的作用 系统调用selectpoll的后端实现,用这两个系统调用来查询设备是否可读写,或是否处于某种状态。如果poll为空,则驱动设备会被认为即可读又可写,返回值是一个状态掩码 如何使用select()函数? select()函数的接口主要是建立在一种叫'fd_set'类型的基础上。它('fd_set') 是一组文件描述符(fd)的集合。由于fd_set类型的长度在不同平台上不同,因此应该用一组标准的宏定义...

by redegao - Linux文档专区 - 2006-11-21 15:01:23 阅读(769) 回复(0)

select()系统调用提供一个机制来实现同步多元I/O: #include sys/time.h> #include sys/types.h> #include unistd.h> int select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); 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); 调用select()将阻塞,直到指定的文件描述符准备好执行I/O,或者可选参数timeout指定的...

by blueelfmoon - Linux文档专区 - 2010-01-26 15:22:40 阅读(1214) 回复(0)

非阻塞 I/O 经常使用 poll(System V)、select(BSD Unix)、 epoll(linux2.5.45开始)系统调用。

select系统调用

select()的调用形式为:
    #include <sys/select.h>
    #include <sys/time.h>
    int select(int maxfd,     ...

by jerry20000 - 移动操作系统 - 2011-12-22 08:51:08 阅读(1143) 回复(0)