如何检测 DVD 驱动器抽屉何时打开

如何检测 DVD 驱动器抽屉何时打开

我被要求编写一个脚本来在 unbutu dvd 驱动器打开时将其关闭,要关闭它,我只需使用以下命令

eject -t

但我无法找到有关如何检测驱动器何时打开的任何文档......

有没有什么方法可以检测 ubuntu 中 DVD 驱动器抽屉何时打开?

答案1

解决方案基本包含这里。 在/usr/include/linux/cdrom.h你会发现所有读写控制()对于 CD-ROM,

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

相关内容