摘要: select需要驱动程序的支持,驱动程序实现fops内的poll函数。select通过每个设备文件对应的poll函数提供的信息判断当前是否有资源 可用(如可读或写),如果有的话则返回可用资源的文件描述符个数,没有的话则睡眠,等待有资源变为可用时再被唤醒继续执行。下面我们分两个过程来分析select:1. select的睡眠过程支持阻塞操作的设备驱动通常会实现一组自身的等待队列如读/写等待队列用于支持上层(用户层)所需的BLOCK或NONBLOCK操作。当应用程序通过设 备驱动访问该设备时(默认为BLOCK操作),若该设备当前没有数据可读或写,则将该用户进程插入到该设备驱动对应的读/写等待队列让 阅读全文
posted @ 2010-12-17 11:08 flyxiang 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 三段测试代码如下://1//没有 include 头文件 , 编译失败 -- NULL 未定义using namespace std;int main(){int a=NULL;return 0;}//2//引入 iostream , 编译成功#includeiostreamusing namespace std;int main(){int a=NULL;return 0;}//3//引入 vector , 编译成功#includevectorusing namespace std;int main(){int a=NULL;return 0;}提问:1.上面编译成功的两段代码中所使 阅读全文
posted @ 2010-12-08 15:58 flyxiang 阅读(2423) 评论(0) 推荐(0) 编辑
摘要: GetTickCount返回(retrieve)从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD。GetTickCount函数的原型为 DWORD GetTickCount(void);它在winbase.h头文件中定义为 WINBASEAPI DWORD WINAPI GetTickCount(VOID); winbase.h已被包含进windows.h头文件中,所以要使用GetTickCount只需包含windows.h就可以了。#include windows.h #i nclude stdio.h //…….. DWORD dwStart; DWOR 阅读全文
posted @ 2010-12-08 15:47 flyxiang 阅读(1215) 评论(0) 推荐(0) 编辑