터치 스크린 장치에서 EVIOCGRAB 사용을 이해하지 못함

터치 스크린 장치에서 EVIOCGRAB 사용을 이해하지 못함

저는 Linux 커널의 터치 스크린 이벤트를 처리하는 사용자 공간 라이브러리를 작업 중입니다.

아래 코드 줄은 그것이 무엇인지 이해하지 못합니다. EVIOCGRAB터치 스크린 파일 설명자를 사용하여 ioctl에 전달하는 목적은 무엇입니까? 왜 필요한가요?

ioctl(fd, EVIOCGRAB, (void *)1);

EVIOCGRAB인터넷 검색으로는 많은 정보를 얻지 못한 것 같습니다. 미리 감사드립니다.

답변1

EVIOCGRAB매개변수가 1이면 장치를 독점하려는 시도가 이루어지며 evdev, 성공하면 캡처된 장치에서 생성된 모든 이벤트가 소유 클라이언트에게만 전송됩니다. 엄밀히 말하면 사실 그럴 필요는 없다.libevdev선적 서류 비치libevdev_grab(이것은도서관 호출 래퍼EVIOCGRAB)설명하다

이것은 일반적으로 나쁜 생각입니다. 이렇게 하지 마십시오.

관련 정보