ChinaUnix.net
相关文章推荐:

linux select poll

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 阅读(1375) 回复(1)

相关讨论

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

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

selectpoll函数 在前一章中,我们遇到一个问题就是,客户端阻塞在了从标准输入中读取数据,与此同时,服务器由于某种原因要求关闭连接给客户端发送了一个FIN,而客户端只有从标准输入读到数据返回后才能知道连接已关闭。在这一章中介绍的I/O复用可以很好的解决这个问题。 1.I/O模型 a. Unix下共有五种I/O模型 阻塞I/O 非阻塞I/O I/O复用(selectpoll) 信号驱动I/O(SIGIO) 异步I/O(Posix.1的aio_系列函数) b.阻塞I/O模型 ...

by g84ch - Linux文档专区 - 2009-09-05 21:58:38 阅读(1573) 回复(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 阅读(1260) 回复(0)
by fufelixzh - C/C++ - 2011-05-23 22:32:07 阅读(1654) 回复(1)

这两个函数是不是和多线程联用的情况比较多?

by VIP_fuck - C/C++ - 2009-06-12 12:50:41 阅读(1479) 回复(3)

重读2.4 052 fs/select.c target="_blank">http://docs.google.com/Doc?id=dcbsxfpf_213vc73kssk 2008-4-22 这里讨论的是selectpoll的系统调用实现方式. 首先要熟悉的是内核中为pollselect定义的各种输入输出消息的含义: pollIN 有数据可以读入,read不会阻塞,注意:select的请情况下,即使到EOF也是ready的. pollPRI 紧急数据,比如TCP,或者packet 模式的peseudo-terminal发现slave的状态有变化....

by yuchuan2008 - Linux文档专区 - 2008-09-27 11:18:12 阅读(1320) 回复(0)

如果当前不可读,那么在sys_poll->do_poll中当 前进程就会睡眠在等待队列上,这个等待队列是由驱动程序提供的(就是poll_wait中传入的那个)。当可读的时候,驱动程序可能有一部分代码运行了 (比如驱动的中断服务程序),那么在这部分代码中,就会唤醒等待队列上的进程,也就是之前睡眠的那个,当那个进程被唤醒后do_poll会再一次的调用驱 动程序的poll函数,这个时候应用程序就知道是可读的了。 本文来自ChinaUnix博客...

by skater - Linux文档专区 - 2006-09-10 20:23:06 阅读(706) 回复(0)

2.1. 如何管理多个连接? “我想同时监控一个以上的文件描述符(fd)/连接(connection)/流(stream),应该怎么办?” 使用 select() 或 poll() 函数。 注意:select() 在BSD中被引入,而poll()是SysV STREAM流控制的产物。因此,这里就有了平台移植上的考虑:纯粹的BSD系统可能仍然缺少poll(),而早一些的SVR3系统中可能没有select(),尽管在SVR4中将其加入。目前两者都是POSIX. 1g标准,(译者注:因此在linux上两者都存在) sel...

by zqy2000zqy - Linux文档专区 - 2006-07-26 15:42:04 阅读(517) 回复(0)

用于需要向多个描述符读写的情况. 使用多进程或多线程的话需要同步, 比较复杂; 使用异步I/O的话每个系统实现不同且都有限制; 比较时宜的方法是采用多路I/O.多路I/O的功能. 用户建立一个描述符列表, 并调用一个多路I/O函数, 该函数直到列表中的描述符至少有一个可以进行I/O操作时才返回, 并且告知用户可用的描述符.poll_table_struct结构的作用: kernel应该管理一个总的poll_table_struct, 当应用程序调用pollselect等待...

by chouqiu - Linux文档专区 - 2006-05-30 09:05:39 阅读(739) 回复(0)

下记以外的其他网址上的关联内容: http://www.builder.com.cn/2002/0320/45489.shtml Chapter 2. 一般文件操作(包括管道和套接字)Table of Contents2.1. 如何管理多个连接? 2.2. 我如何才能知道和对方的连接被终止? 2.3. 什么是读取目录的最好方法? 2.4. 我如何才能知道一个文件被另外进程打开? 2.5. 我如何锁住一个文件? 2.6. 我如何能发现一个文件已由另外一个进程更新? 2.7. 请问du是怎样工作的? 2.8. 我...

by bo_00 - Linux文档专区 - 2009-07-26 10:56:36 阅读(1359) 回复(0)