Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

How do I read a CD volume label?

by joggi (Novice)
on May 15, 2003 at 03:10 UTC ( [id://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.
    dragonchild

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2024-04-24 00:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found