select () не отвечает на запись в / dev / input / mice

Я пишу программу, которая контролирует черезselect() на клавиатуре и мыши файлы устройства. Он ожидает любой операции записи (это должно происходить при нажатии клавиши или движении мыши) в этих файлах, и как только происходит операция записи, выполняются некоторые задания.

Но это'не работает. Мой код приведен ниже.

#include
#include
#include
#include
#include
#include
#include
#include
#include

void main()
{
    int mouse_fd,kbd_fd,fd_max;
    struct input_event ev;
    fd_set rfs,wfs;

    if((mouse_fd=open("/dev/input/event3",O_WRONLY))==-1)
            {
                printf("opening mouse device file has failed \n");
            }
    else
            {
                printf("opening mouse device file has been successfull \n");
            }
    if((kbd_fd=open("/dev/input/event2",O_WRONLY))==-1)
            {
                printf("opening keyboard device file has failed \n");
            }
    else
        {
            printf("opening keyboard device file has been successfull \n");
        }

    FD_ZERO(&rfs);
    FD_ZERO(&wfs);
    FD_SET(mouse_fd,&rfs);
    FD_SET(kbd_fd,&rfs);
    FD_SET(mouse_fd,&wfs);
    FD_SET(kbd_fd,&wfs);

    if(mouse_fd>kbd_fd)
        {
            fd_max=mouse_fd;
        }
    else
        {
         fd_max=kbd_fd;
        }

    while(1)
    {
        select((fd_max+1),&rfs,NULL,NULL,NULL);
        sleep(2);
        if(FD_ISSET(mouse_fd,&rfs))
            {
                printf("test mouse \n");
            }
        if(FD_ISSET(kbd_fd,&rfs))
            {
                printf("test keyboard \n");
            }
   }
}

Когда я выполняю программу, она производит вывод, как это,

[root@localhost Project]# gcc select.c
[root@localhost Project]# ./a.out
opening mouse device file has been successfull 
opening keyboard device file has been successfull 
test keyboard 
test keyboard 
test keyboard 
test keyboard 
test keyboard 
test keyboard 
test keyboard 
test keyboard 
test keyboard

хотя я не нажимаю ни одну клавишу. Кроме того, файл устройства мыши никогда не выбирается с помощью select (), даже если есть физическое движение мыши.

Что я делаю неправильно?

Ответы на вопрос(1)

Ваш ответ на вопрос