ChinaUnix.net
相关文章推荐:

select 原理

这个问题困惑我好长时间了,我知道是内核控制的。但是我想知道具体的机制是怎么样的?

by glddydyzcw - C/C++ - 2007-08-30 09:22:47 阅读(4848) 回复(4)

相关讨论

select需要驱动程序的支持,驱动程序实现fops内的poll函数。select通过每个设备文件对应的poll函数提供的信息判断当前是否有资源可用(如可读或写),如果有的话则返回可用资源的文件描述符个数,没有的话则睡眠,等待有资源变为可用时再被唤醒继续执行。 下面我们分两个过程来分析select: 1. select的睡眠过程 支持阻塞操作的设备驱动通常会实现一组自身的等待队列如读/写等待队列用于支持上层(用户层)所需的BLOCK或NONBLOC...

by 逼良为娼 - Linux文档专区 - 2009-11-07 13:02:48 阅读(981) 回复(0)

select函数实现原理分析 select需要驱动程序的支持,驱动程序实现fops内的poll函数。select通过每个设备文件对应的poll函数提供的信息判断当前是否有资源可用(如可读或写),如果有的话则返回可用资源的文件描述符个数,没有的话则睡眠,等待有资源变为可用时再被唤醒继续执行。 下面我们分两个过程来分析select: 1. select的睡眠过程 支持阻塞操作的设备驱动通常会实现一组自身的等待队列如读/写等待队列用于支持上层(用...

by zsfly - Linux文档专区 - 2009-11-03 23:58:35 阅读(658) 回复(0)

[color="#000066"]select函数实现原理分析 select函数实现原理分析(转载) select需要驱动程序的支持,驱动程序实现fops内的poll函数。select通过每个设备文件对应的poll函数提供的信息判断当前是否有资源可用(如可读或写),如果有的话则返回可用资源的文件描述符个数,没有的话则睡眠,等待有资源变为可用时再被唤醒继续执行。 下面我们分两个过程来分析select: 1. select的睡眠过程 支持阻塞操作的设备驱动通常会实现一...

by jinweidavid - Linux文档专区 - 2009-08-04 13:46:12 阅读(511) 回复(0)

select函数实现原理分析(转载) select需要驱动程序的支持,驱动程序实现fops内的poll函数。select通过每个设备文件对应的poll函数提供的信息判断当前是否有资源可用(如可读或写),如果有的话则返回可用资源的文件描述符个数,没有的话则睡眠,等待有资源变为可用时再被唤醒继续执行。 下面我们分两个过程来分析select: 1. select的睡眠过程 支持阻塞操作的设备驱动通常会实现一组自身的等待队列如读/写等待队列用于支持上层(用户...

by hubo214 - Linux文档专区 - 2009-05-11 23:09:56 阅读(447) 回复(0)

select函数实现原理分析(转载) select需要驱动程序的支持,驱动程序实现fops内的poll函数。select通过每个设备文件对应的poll函数提供的信息判断当前是否有资源可用(如可读或写),如果有的话则返回可用资源的文件描述符个数,没有的话则睡眠,等待有资源变为可用时再被唤醒继续执行。 下面我们分两个过程来分析select: 1. select的睡眠过程 支持阻塞操作的设备驱动通常会实现一组自身的等待队列如读/写等待队列用于支持...

by embededgood - Linux文档专区 - 2009-05-03 22:26:12 阅读(993) 回复(0)

select函数实现原理分析 select需要驱动程序的支持,驱动程序实现fops内的poll函数。select通过每个设备文件对应的poll函数提供的信息判断当前是否有资源可用(如可读或写),如果有的话则返回可用资源的文件描述符个数,没有的话则睡眠,等待有资源变为可用时再被唤醒继续执行。 下面我们分两个过程来分析select: 1. select的睡眠过程 支持阻塞操作的设备驱动通常会实现一组自身的等待队列如读/写等待队列用于支持上层(用...

by dongas - Linux文档专区 - 2008-10-24 22:31:46 阅读(4306) 回复(0)

如果判断是否可读,可能是这样的:看TCP的接收缓冲区中有没有准备好数据,如果有,就可读 那么判断是否可写呢?你这一端TCP的发送缓冲区是正常的,但连接另一端可能无声无息挂了,比如说掉电拨网线 那么这时select会返回什么样的结果呢?

by Jass - C/C++ - 2007-08-28 18:08:07 阅读(2224) 回复(2)

举个例子:select * from z where a>;1 and b<10 执行的顺序是先取a>;1的条件然后在取的结果集上再取b<10?还是遍历表对没行记录判断是否a>;1 and b<10? a

by zl=koko - Sybase - 2005-09-15 16:54:14 阅读(1863) 回复(4)

Quite often when you’re writing Linux applications, you may need to examine the state of a number of inputs to determine the next action to take. For example, a communication program such as a terminal emulator needs to read the keyboard and the serial port effectively at the same time. In a single-user system, it might be acceptable to run in a “busy wait” loop, repeatedly scanning the input f...

by xqzhao206 - Linux文档专区 - 2009-11-04 22:19:20 阅读(730) 回复(0)

void fun() { int i; int ch; struct timeval timeout; timeout.tv_sec=1; timeout.tv_usec=0; fd_set readfds; FD_ZERO(&readfds); FD_SET(0,&readfds); i=select(1,&readfds,NULL,NULL,&timeout); if(i==1) ch=getchar(); printf("%c",ch); fun(); } int main() { pid_t pid; if((pid=vfork())==0)fun(); while(1); return 1; } ------------------------- 我原是想通过fun来监听键...

by jqx55ah - C/C++ - 2008-11-01 21:56:40 阅读(1518) 回复(5)