저는 Linux 커널의 터치 스크린 이벤트를 처리하는 사용자 공간 라이브러리를 작업 중입니다.
아래 코드 줄은 그것이 무엇인지 이해하지 못합니다. EVIOCGRAB
터치 스크린 파일 설명자를 사용하여 ioctl에 전달하는 목적은 무엇입니까? 왜 필요한가요?
ioctl(fd, EVIOCGRAB, (void *)1);
EVIOCGRAB
인터넷 검색으로는 많은 정보를 얻지 못한 것 같습니다. 미리 감사드립니다.
답변1
EVIOCGRAB
매개변수가 1이면 장치를 독점하려는 시도가 이루어지며 evdev
, 성공하면 캡처된 장치에서 생성된 모든 이벤트가 소유 클라이언트에게만 전송됩니다. 엄밀히 말하면 사실 그럴 필요는 없다.libevdev
선적 서류 비치libevdev_grab
(이것은도서관 호출 래퍼EVIOCGRAB
)설명하다
이것은 일반적으로 나쁜 생각입니다. 이렇게 하지 마십시오.