Moin!
Das sieht in etwa so aus
Code:
# include <stdio.h>
# include <unistd.h>
# include <sys/ioctl.h>
# include <fcntl.h>
# include <linux/cdrom.h>
int main()
{
int fd, caps;
if ((fd = open("/dev/cdrom", O_RDONLY | O_NONBLOCK))
== -1)
{
perror("cdromcap: Can't open /dev/cdrom");
return(1);
}
if ((caps = ioctl(fd, CDROM_GET_CAPABILITY)) == -1)
{
perror("cdromcap: ioctl() failed");
return(1);
}
printf("Drive is a CD-R: %s, CD-RW: %s, DVD: %s, "
"DVD-R: %s.\n",
(caps & CDC_CD_R)? "yes" : "no",
(caps & CDC_CD_RW)? "yes" : "no",
(caps & CDC_DVD)? "yes" : "no",
(caps & CDC_DVD_R)? "yes" : "no");
printf("It can close tray: %s, lock: %s, "
"select disc: %s.\n",
(caps & CDC_CLOSE_TRAY)? "no" : "yes",
(caps & CDC_LOCK)? "yes" : "no",
(caps & CDC_SELECT_DISC)? "yes" : "no");
close(fd);
return(0);
}
Schau Dir am besten mal dazu die Manpages von ioctl an, das ist quasi das Schweizer-Messer um Hardware unter Linux anzusprechen. Die cdrom.h ist sicherlich auch eine Blick wert.
Die Bedeutung der LUN müsste ich jetzt selber raussuchen, soweit ich weiss ist es hierdurch
möglich, mehrere SCSI Geräte mit der gleichen ID zu betreiben.
GreetZ
ReSeT
Lesezeichen