2

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

eject -t

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

Есть ли способ определить, когда в Ubuntu открывается ящик DVD-привода?

1 ответ1

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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .