
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입니다.