
Ich wurde aufgefordert, ein Skript zu schreiben, um mein unbutu DVD-Laufwerk zu schließen, wenn es geöffnet wird, und um es zu schließen, verwende ich einfach den Befehl
eject -t
aber ich kann keine Dokumentation dazu finden, wie man erkennt, wann das Laufwerk geöffnet wird...
Gibt es eine Möglichkeit, in Ubuntu zu erkennen, wann die Schublade des DVD-Laufwerks geöffnet wird?
Antwort1
Die Lösung ist im Wesentlichen enthaltenHier. In/usr/include/linux/cdrom.hSie finden allesioctl()für die CD-ROM,
#define CDROM_DRIVE_STATUS 0x5326 /* Get tray position, etc. */
Ein Code-Schnipsel, der dies für Sie zurückgibt, ist:
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 */
}
Der entscheidende Punkt ist natürlich CDS_TRAY_OPEN.