Как определить, когда открывается лоток DVD-привода

Как определить, когда открывается лоток DVD-привода

Мне было предложено написать скрипт, который закроет мой unbutu DVD-привод при его открытии, и чтобы закрыть его, я просто использую команду

eject -t

но я не могу найти никакой документации о том, как определить момент открытия привода....

Можно ли как-то определить, когда открывается лоток DVD-привода в Ubuntu?

решение1

Решение в основном содержитсяздесь. В/usr/include/linux/cdrom.hвы найдете всеioctl()для компакт-диска,

#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.

Связанный контент