如何偵測 DVD 光碟機抽屜何時打開

如何偵測 DVD 光碟機抽屜何時打開

我面臨著編寫一個腳本來在打開時關閉我的 unbutu dvd 驅動器的挑戰,並且要關閉它我只需使用命令

eject -t

但我找不到任何有關如何檢測驅動器何時打開的文檔...

無論如何,有沒有辦法偵測 DVD 光碟機抽屜何時在 ubuntu 中開啟?

答案1

解決方案基本上包含這裡。在/usr/include/linux/cdrom.h你會發現所有讀寫控制()對於 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。

相關內容