我被要求编写一个脚本来在 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。