Hi Leute,
stehe etwas vor dem Problem (ich weiss, dass es das aeusserst beliebte Plugin zum oeffnen und schliessen gibt ), wie man feststellen kann (und zwar auch wenn keine CD/DVD gemountet ist; muss unbedingt auch mit autofs funktionieren ...) ob die Schublade offen oder zu ist.
Es existiert zwar ein Versuch wie
C
#include <stdio.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/cdrom.h>
int main (void)
{
int fd, status;
fd = open ("/dev/cdrom", O_RDONLY | O_NONBLOCK);
if (fd == -1)
{
perror ("could not open /dev/cdrom");
return 1;
}
status = ioctl (fd, CDROM_DRIVE_STATUS);
switch (status)
{
case -1:
perror ("could not query status of /dev/cdrom");
close (fd);
return 1;
case CDS_NO_INFO:
puts ("not implemented");
break;
case CDS_NO_DISC:
puts ("no disc");
break;
case CDS_TRAY_OPEN:
puts ("tray open");
break;
case CDS_DRIVE_NOT_READY:
puts ("drive not ready");
break;
case CDS_DISC_OK:
puts ("disc ok");
break;
default:
puts ("unknown status");
break;
}
close (fd);
return 0;
}
Alles anzeigen
doch das ist eben nur ein Bruchteil der "Wahrheit".
Eject selbst hilft auch nicht weiter (Rueckgabewert ist ja nur bei einem Syntaxerror oder verweigerten Zugriff ungleich null).
Hat jemand zufaellig eine zuendende Idee dazu ?
Gruss
Burkhardt