fcntl更改阻塞与非阻塞模式&读取鼠标键盘值

来源:互联网 发布:淘宝电子商务模式 编辑:程序博客网 时间:2024/06/06 02:54
#define MOUSE   "/dev/input/mouse1"int main(int argc,char **argv){    int fd = -1,ret = -1;    char buf[100] = {0};    fd = open(MOUSE,O_RDONLY|O_NONBLOCK );/*鼠标非阻塞*/    if(fd<0)    {        perror("open ");        return -1;    }    int flag = -1;    flag = fcntl(0,F_GETFL);/*读取键盘模式*/    flag |= O_NONBLOCK;/*非阻塞*/    fcntl(0,F_SETFL,flag);/*写入模式*/    while(1)    {        memset(buf,0,sizeof(buf));        ret = read(fd,buf,100);/*读取鼠标的值*/        if(ret>0)            printf("mouse[%d] = %s\r\n",ret,buf);        memset(buf,0,sizeof(buf));        ret = read(0,buf,100);  /*读取标准输入的值*/        if(ret>0)            printf("keyboard[%d] = %s\r\n",ret,buf);    }    close(fd);    return 0;}
原创粉丝点击