The disk volume header... again

Jeremy Higdon jeremy at perf2.asd.sgi.com
Tue Mar 5 16:05:38 AEST 1991


In article <9103012010.AA04983 at koko.pdi.com>, shoshana at pdi.UUCP (Shoshana Abrass) writes:
> 
>   Last week I posted a question and answer about how to read the volume
>   header into a c program. My code looks like this (extras and error  
>   checking removed for brevity):
> 
>     struct volume_header  *vh;
> 
>     fd = open("/dev/rvh", O_RDONLY);
>     ioctl(fd, DIOCGETVH, vh);
> 
>   The ioctl call fills "vh" with useful information, and I can then read
>   the volume directory and determine the length and logical-block-number
>   of the file I want to read.  But... what now?  I'd like to read this 
>   file in off the disk.  I've looked at the man pages for vh, dksc,
>   and the include files dvh.h and dkio.h, and nothing jumps out at me.
> 
>   I've tried doing an lseek to the logical block number, but I get either 
>   zeros or garbage. I know zilch about how devices work at this level, so 
>   I tried the following lseeks on both /dev/vh and /dev/rvh:
> 
>     lbn
>     sizeof(struct volume_header) + lbn
> 

Try lbn*NBPSCTR (lbn*512) as the seek argument.



More information about the Comp.sys.sgi mailing list