![여러 프로세스의 병렬 읽기를 위해 Linux에서 개방형 문자 장치](https://linux55.com/image/129399/%EC%97%AC%EB%9F%AC%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%9D%98%20%EB%B3%91%EB%A0%AC%20%EC%9D%BD%EA%B8%B0%EB%A5%BC%20%EC%9C%84%ED%95%B4%20Linux%EC%97%90%EC%84%9C%20%EA%B0%9C%EB%B0%A9%ED%98%95%20%EB%AC%B8%EC%9E%90%20%EC%9E%A5%EC%B9%98.png)
/dev/tty1
여러 프로세스를 통해 문자 장치를 열어서 프로세스 간 읽기를 방해하지 않도록 하고 싶습니다 . 한 프로세스가 바이트를 소비하면 다른 프로세스는 이를 수신하지 못한다는 사실을 발견했습니다.
문제 세부정보:
저는 Linux에서 키 누르기 및 키 놓기 수신이 필요한 콘솔 응용 프로그램을 작성하고 있습니다. 불행하게도 mc가 동일한 장치에서 읽기를 통해 키 입력을 가로채려고 시도 하기 K_XLATE
때문에 해당 설명자를 읽으면 바이트가 손실됩니다(해당 인터페이스를 위로 올리거나 뒤로 숨기세요).K_RAW
ioctl(fd,KDSKBMODE,K_RAW)
/dev/tty1
Ctrl+O
mc
/dev/tty
그래서 stdin에서 생성된 의사 터미널 파이프 (모드로 설정한 후 )에서도 읽기를 시도했습니다 K_RAW
. 이제 내 Ctrl+O
문자 코드가 0x0F
탭 스캔 코드(또한 )와 충돌한다는 점 을 제외하면 거의 작동합니다 0x0F
.
그보다 더 높은 권한이 필요하지 않은 간섭 문제를 해결할 수 있는 방법을 찾고 있으므로 키보드를 직접 읽을 수 있는 cap_sys_tty_config
액세스는 /dev/input
나에게 실행 가능한 접근 방식이 아닙니다.