Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

How do I read a CD volume label?

by joggi (Novice)
on May 15, 2003 at 03:10 UTC ( #258319=perlquestion: print w/replies, xml ) Need Help??

joggi has asked for the wisdom of the Perl Monks concerning the following question:

I initally tried: open(CD,"/dev/cdrom"); read(CD,$lable,32,32808); print "lable--$lable\n"; close CD; but it doesn't work,what's the matter?thanks

Replies are listed 'Best First'.
Re: How do I read a CD volume label?
by pfaut (Priest) on May 15, 2003 at 03:29 UTC

    What is the significance of the numbers 32 and 32808? I don't think they are doing what you expect them to be doing.

    I suspect you want to read 32 bytes starting at 32808 bytes into the CD. What you are asking read to do is read the first 32 bytes from the cdrom and place them into $lable starting at a 32808 byte offset. This will put 32808 nul characters into $lable followed by the first 32 bytes from the cdrom.

    To do what I think you are trying to do, you need to first seek to the right offset, then read 32 bytes. Try this.

    open CD,"<","/dev/cdrom" or die "Unable to open CDROM: $!"; seek CD,32808,0 or die "Unable to seek: $!"; read CD,$lable,32 or die "Unable to read from CD: $!"; close CD; print $lable,$/;

    I tried this with a data disc on my system and it displayed Debian 3.0 r0 i386 Bin-1        1.

    90% of every Perl application is already written.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://258319]
Approved by halley
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2021-04-15 16:42 GMT
Find Nodes?
    Voting Booth?

    No recent polls found