我試圖通過ioctl()讀取linux設(shè)備的輸入,并且看到了很多帶有“ test_bit”宏的代碼示例,但是我發(fā)現(xiàn)的唯一代碼是:#define test_bit(bit, array) (array[bit / 8] & (1 << (bit % 8))),它不起作用。我得出的結(jié)論是,為了擁有此宏,我的班級中可能要包含一些東西。有幾天有人遇到這個問題,有人可以幫我嗎?謝謝編輯:這是我正在運行的代碼:void test(){uint8_t key_b[KEY_MAX/8 + 1];/* the events (up to 64 at once) */const char *keyboard = "/dev/input/keyboard0";int keybrdToCapture;int yalv;keybrdToCapture = open(keyboard, O_RDONLY);memset(key_b, 0, sizeof(key_b));ioctl(keybrdToCapture, EVIOCGKEY(sizeof(key_b)), key_b);for (yalv = 0; yalv < KEY_MAX; yalv++) { if (test_bit(yalv, key_b)) { switch ( yalv) { case 0x1c : dial->setMessage("Enter"); dial->show(); break; case 0x66 : dial->setMessage("Home"); dial->show(); break; case 0x3b : dial->setMessage("F1"); dial->show(); break; case 0x3c : dial->setMessage("F2"); dial->show(); break; default: dial->setMessage("Unknow for now"); dial->show(); } }}}
添加回答
舉報
0/150
提交
取消