Linux의 `stdin`은 어떻게 작동하나요?

Linux의 `stdin`은 어떻게 작동하나요?

나는 그것이 stdin리눅스의 표준 입력, 일반적으로 키보드를 의미한다는 것을 알고 있습니다. 참고하셔도 됩니다 file descriptor 0.

그렇다면 마우스는 어떤 파일 디스크립터(표준 입력)를 참조하는가? 아니면 다른 파일이나 입력 파일에 비해 기능이 매우 다른 특수 파일인가요? 그렇다면 마우스는 어떻게 작동하며 마우스 입력은 어디에 매핑됩니까?

동일한 문제가 터치스크린에도 적용됩니다.

답변1

마우스는 일반적으로 리눅스에서 하나의 장치로 접근이 가능하며 , 단일 장치를 통해 시스템 내 모든 마우스의 입력을 받을 수 있는 /dev/input가상 장치가 있습니다 ./dev/input/mice

그러나 마우스 장치는 일반적으로 어떤 프로세스의 표준 입력에도 연결되지 않습니다. 그래픽 환경을 사용하는 경우 X11 서버는 이러한 장치 중 하나 이상을 열고 마우스 이벤트를 수신하는 프로세스입니다. 일반 응용 프로그램은 stdin 을 통하지 않고 X11 프로토콜(또는 사용 중인 더 높은 수준의 툴킷)을 사용하여 마우스 이벤트 및 기타 모든 유형의 이벤트(키보드 이벤트, 창 그리기 이벤트, 창 포커스 이벤트 등)를 수신합니다.

터치스크린은 마우스와 마찬가지로 /dev/input시스템의 첫 번째 터치스크린 장치라고도 합니다 /dev/input/touchscreen0.

터치 스크린 및 마우스를 포함한 의 모든 장치는 /dev/inputC 포함 파일에 정의된 특정 바이너리 형식으로 이벤트를 전달합니다 <linux/input.h>.

관련 정보