
我面臨著編寫一個腳本來在打開時關閉我的 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。