DVD 드라이브 서랍이 열리는 시기를 감지하는 방법

DVD 드라이브 서랍이 열리는 시기를 감지하는 방법

unbutu DVD 드라이브가 열릴 때 닫는 스크립트를 작성해야 했는데 닫으려면 다음 명령을 사용하면 됩니다.

eject -t

하지만 드라이브가 열리는 시기를 감지하는 방법에 대한 문서를 찾을 수 없습니다....

우분투에서 DVD 드라이브 서랍이 열리는 시기를 감지할 수 있는 방법이 있습니까?

답변1

솔루션이 기본적으로 포함되어 있습니다.여기. ~ 안에/usr/include/linux/cdrom.h당신은 모두 찾을 것입니다ioctl()CDROM의 경우,

#define CDROM_DRIVE_STATUS      0x5326  /* Get tray position, etc. */

이를 반환하는 코드 조각은 다음과 같습니다.

 int slot;
 ioctl(fd, CDROM_DRIVE_STATUS, slot);

 switch(slot) {
    case CDS_NO_INFO: ... break;
    case CDS_NO_DISC: ... break;
    case CDS_TRAY_OPEN: ... break;
    case CDS_DRIVE_NOT_READY: ... break;
    case CDS_DISC_OK: ... break;
    default: /* something else, whichever you like */
 }

핵심은 물론 CDS_TRAY_OPEN입니다.

관련 정보