동일한 USB 직렬 변환기에 2개 이상의 프로그램

동일한 USB 직렬 변환기에 2개 이상의 프로그램

RS-485-USB 변환기를 통해 Linux PC에 연결된 10개의 RS-485 장치 네트워크가 있다고 가정합니다.

/dev/ttyUSB0에는 직렬 변환기와 상호 작용하는 C 프로그램이 이미 있습니다.

내 질문은 2개 이상의 프로그램이 동일한 /dev/ttyUSB0과 상호 작용하면 어떻게 됩니까?

Linux는 하나의 프로그램에서만 사용하도록 /dev/ttyUSB를 자동으로 잠급니까?

답변1

즉, 두 프로그램 모두 제대로 작동하지 않습니다. 두 프로그램의 출력이 결합되어 직렬 포트로 전송됩니다. 직렬 포트를 통해 들어오는 입력은 하나의 프로그램에서만 볼 수 있습니다(일부 입력은 무작위로 프로그램 중 하나로 이동하고 일부 입력은 무작위로 다른 프로그램으로 이동).

따라서 일반적으로 직렬 포트(전통적으로는 uucp, 최근에는 pppd 및 터미널 에뮬레이터)를 사용하는 프로그램이 일종의 잠금을 구현했습니다. 미리 구성된 일부 전역 디렉토리(예: /var/lock)에 있는 잠금 파일을 사용하는 권고 잠금(필수 아님)입니다.

관련 정보