On Sat, Dec 04, 1999 at 12:19:04AM +0100, Dawid Michalczyk wrote:
>
> I'm writing a script, in which I need to get the name
> of the cdrom media. This is easy in Windows as the
> name of the cd is always listed in the "My computer"
> window. In Linux, there is only the mount point dir which
> is always the same, but each cd has its own
> name. How do I solve this?
If you mean the "volume label", I'll append below a short C program
(a real ugly hack, but it works) which will do the job.
It just gropes the CD drive, looking in a known place. If the format
ever changes you're hosed. I have no idea if it works on Joliet file
systems or not.
I call it "getvn.c" and compile it like this:
cc getvn.c -o getvn
and invoke it as:
getvn /dev/hdd
or wherver your CD drive is attached, if not /dev/hdd.
Fred
------------------------------
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main (int argc, char ** argv)
{
int fd;
char buf[12];
if (argc != 2)
{
printf ("Usage: %s <cdrom devicename>\n", argv[0]);
exit (0);
}
fd = open (argv[1], O_RDONLY);
if (fd < 0)
{
printf ("oops! Error opening device %s\n", argv[1]);
exit (1);
}
if (lseek (fd, (long) 0x8028, SEEK_SET) != (long) 0x8028)
{
printf ("oops! Error seeking device %s\n", argv[1]);
exit (1);
}
if (read (fd, buf, 11) != 11)
{
printf ("oops! Error reading device %s\n", argv[1]);
exit (1);
}
close (fd);
printf ("Volume name in device %s: %s\n", argv[1], buf);
return (0);
}
--
---- Fred Smith -- [EMAIL PROTECTED] ----------------------------
I can do all things through Christ
who strengthens me.
------------------------------ Philippians 4:13 -------------------------------
--
To unsubscribe: mail [EMAIL PROTECTED] with "unsubscribe"
as the Subject.