#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/select.h> int main(void)
{
int ret = -;
int fd = -;
char buf[];
fd_set myset;
struct timeval tm;
fd = open("/dev/input/mouse0",O_RDONLY);
if(fd < )
{
perror("open:");
return -;
}
FD_ZERO(&myset);
FD_SET(fd, &myset);
FD_SET(, &myset);
tm.tv_sec = ;
tm.tv_usec = ;
ret = select(fd + , &myset, NULL, NULL, &tm);
if(ret < )
{
perror("select:");
return -;
}
else if(ret == )
{
printf("超时了\n");
}
else
{
if(FD_ISSET(fd, &myset))
{
//处理鼠标
memset(buf, , sizeof(buf));
read(fd, buf, );
printf("读出的鼠标:[%s]\n",buf);
}
if(FD_ISSET(, &myset))
{
//处理键盘
memset(buf, , sizeof(buf));
read(, buf, );
printf("读出的键盘:[%s]\n",buf);
}
}
return ;
}

Linux-IO多路复用select函数实践的更多相关文章

  1. Linux IO多路复用 select

    Linux IO多路复用 select 之前曾经写过简单的服务器,服务器是用多线程阻塞,客户端每一帧是用非阻塞实现的 后来发现select可以用来多路IO复用,就是说可以把服务器这么多线程放在一个线程 ...

  2. Linux IO多路复用 select/poll/epoll

    Select -- synchronius I/O multiplexing select, FS_SET,FD_CLR,FD_ISSET,FD_ZERO #include <sys/time. ...

  3. 【知乎网】Linux IO 多路复用 是什么意思?

    提问一: Linux IO多路复用有 epoll, poll, select,知道epoll性能比其他几者要好.也在网上查了一下这几者的区别,表示没有弄明白. IO多路复用是什么意思,在实际的应用中是 ...

  4. Linux IO多路复用

    监听文件描述符的状态来进行相应的读写操作,3个函数: 123 selectpollepoll 123456789 int (int nfds, fd_set *readfds, fd_set *wri ...

  5. Linux IO多路复用 poll

    Linux IO多路复用 poll 之前曾经提到过 select poll 跟select类似,poll改进了select的一个确定,就是poll没有监听上限 不过poll还是需要遍历以及频繁的把数组 ...

  6. io多路复用-select()

    参照<Unix网络编程>相关章节内容,实现了一个简单的单线程IO多路复用服务器与客户端. 普通迭代服务器,由于执行recvfrom则会发生阻塞,直到客户端发送数据并正确接收后才能够返回,一 ...

  7. 第五十五节,IO多路复用select模块加socket模块,伪多线并发

    IO多路复用select模块加socket模块,伪多线并发,并不是真正的多线程并发,实际通过循环等待还是一个一个处理的 IO多路复用,lo就是文件或数据的输入输出,IO多路复用就是可以多用户操作 IO ...

  8. linux c语言 select函数用法

    linux c语言 select函数用法 表头文件 #i nclude<sys/time.h> #i nclude<sys/types.h> #i nclude<unis ...

  9. linux c语言 select函数使用方法

    linux c语言 select函数使用方法 表头文件 #i nclude<sys/time.h> #i nclude<sys/types.h> #i nclude<un ...

随机推荐

  1. 一个有意思的html验证码: namesilo验证码

    买域名的时候看到的一个验证码,感觉蛮有意思的(https://www.namesilo.com/create_account.php),这个质感看上去就不一样: 查看页面源码,果然这个验证码是用htm ...

  2. node重点 模块

    node模块 1.全局模块(对象)(像js中的window document) 定义:何时何地都可以访问,不需要引用 1.process.env 环境变量 计算机属性 高级系统设置 高级 环境变量 作 ...

  3. JWT跨域身份验证解决方案

    JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案.本文介绍JWT的原理和用法. 1. 当前跨域身份验证的问题 Internet服务无法与用户身份验证分开.一般过程如下.1.用户 ...

  4. crmv2项目

    maven -----------------------------------------------------------------------------感谢打赏!

  5. 12.swoole学习笔记--锁机制

    <?php //创建锁对象 $lock=new swoole_lock(SWOOLE_MUTEX);//互斥锁 echo "创建互斥锁\n"; //开始锁定 主进程 $loc ...

  6. 十一、JavaScript之两种注释方法

    一.代码如下 二.运行效果如下

  7. Spring 实战4学习笔记(转)

    http://blog.csdn.net/21aspnet/article/details/51386557 1.IOC装配Bean 参考[spring实战4 2.2],作者提倡无XML配置化. 1. ...

  8. PHP网页简单的计算机源代码

    还是那样老师留的作业,百度一波和老师留的作业有区别!自己写一下!! 作业题目: 实现PHP网页的计算器功能.至少实现运算符 +.-.*./.取模的功能. (提示:可以点击‘等号’进行运算,也可以另外添 ...

  9. 怎么在一个servlet中实现多个功能 ?如何使一个Servlet处理多个请求?

    自学javaweb一直不知道一个servelt可以有多个功能!看了别人代码才知道这个可以有! 平时你建立servelt时候你会吧doget和dopost这两个勾上,要想实现多个功能,你不必要勾选dog ...

  10. 一、REACT概述

    1.前端/react概述 <从零react> 1.前端工 程概述 Web跨平台.跨浏览 器的应用开发场景 网页浏览器(Web Browser) 通过 CLI 指令去操作的 Headless ...