DVDドライブの引き出しが開いたことを検出する方法

DVDドライブの引き出しが開いたことを検出する方法

私はunbutu DVDドライブが開いたときにそれを閉じるスクリプトを書くように挑戦しました。それを閉じるには、次のコマンドを使用します。

eject -t

しかし、ドライブが開いたときにそれを検出する方法に関するドキュメントが見つかりません...

Ubuntu で DVD ドライブの引き出しが開いたことを検出する方法はありますか?

答え1

解決策は基本的に封じ込められているここ。 でcdrom.h は、すべて見つかりますioctl()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 です。

関連情報