특정 마운트 지점을 제공하는 드라이브에 대한 USB 장치 정보 검색

특정 마운트 지점을 제공하는 드라이브에 대한 USB 장치 정보 검색

저는 다음을 수행해야 하는 C/C++ 도구를 작성하고 있습니다.

  1. 새 마운트 지점이 설치되면 감지합니다. ✔
  2. 이 마운트 지점을 제공하는 (USB) 장치를 찾으십시오. ❓
  3. 장치의 USB 공급업체 ID와 제품 ID를 가져옵니다. ✔ - libusb

GNU/Linux에서 제공하는 인터페이스를 사용하여 작업 2를 수행하는 방법을 잘 모르겠습니다. 저는 명령줄 도구를 사용하는 데 관심이 없습니다. 애플리케이션을 작성 중이고 운영 체제 인터페이스를 사용해야 합니다.

지금까지 나는 (마운트가 변경되었는지 확인하기 위해 사용하는 것)을 사용해 보았지만 /proc/{pid}/mountinfo어떤 장치가 이 마운트 지점을 제공하는지 추적할 수 없는 것 같습니다.

어떤 도움이라도 대단히 감사하겠습니다.

답변1

udev를 사용한다고 가정하면,리브데프좋은 선택이 될 수도 있습니다. udev는 새 장치가 시스템에 삽입될 때 장치 노드를 자동으로 생성하는 Linux의 하위 시스템입니다. udev를 사용하면 새 장치가 시스템에 연결될 때 이를 모니터링하고 원하는 모든 정보를 얻을 수도 있습니다. 원하는 속성을 쿼리하고 해당 값을 쉽게 얻을 수 있는 "udev_device_get_sysattr_value"와 같은 멋진 기능을 제공합니다.

udev가 제공하는 속성을 확인하려면 다음과 같이 udevadm 유틸리티를 사용할 수 있습니다.

udevadm 정보 --query=all -n /dev/your_device_node

샘플 코드도 찾을 수 있습니다여기그리고여기.

답변2

/proc/{pid}/mounts표시 화면. 기본 및 보조 ID를 가져온 다음 /sys/dev/block/{major}:{minor}USB 장치에 대한 심볼릭 링크를 가져옵니다.

관련 정보