Como detectar quando a gaveta da unidade de DVD abre

Como detectar quando a gaveta da unidade de DVD abre

Fui desafiado a escrever um script para fechar minha unidade de DVD unbutu quando ela abrir, e para fechá-la basta usar o comando

eject -t

mas não consigo encontrar nenhuma documentação sobre como detectar quando a unidade abre....

Existe alguma maneira de detectar quando a gaveta da unidade de DVD abre no Ubuntu?

Responder1

A solução está basicamente contidaaqui. Em/usr/include/linux/cdrom.hvocê encontrará tudoioctl()para o CD-ROM,

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

Um trecho de código retornando isso para você é:

 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 */
 }

O ponto chave é, claro, CDS_TRAY_OPEN.

informação relacionada