Re: Indexf.sys koszonet
Maulis Adam <maulis@ludens.elte.hu>
Szia,
eleresi utvonal az indexf.sys -bol:
a file header-ben van egy "backlink pointer"
ami az ot tartalmazo directory FID-je.
Abban szinten van, etc egeszen a (4,4,0) -ig,
(volume set eseten a (4,4,1) -ig) ami a master file dir.
Egy kis rekurzioval tehat megkaphato az utvonal.
Udv,
Adam
Egyebkent, erdekessegkeppen DCL megoldas kilistazza
a file headereket formazva, ha a disk
a sztenderd INIT paranccsal lett inicializalva:
$!
$! virtual block (1 -tol szamozodik!)
$! start: 0+1 len: 2*vcf (boot+)home block
$! start: 2*vcf+1 len: vcf backup home block
$! start: 3*vcf+1 len: vcf backup header of indexf.sys
$! start: 4*vcf+1 bitmap of indexf.sys
$ vcf = ( f$gedvi("SYS$DISK","CLUSTER") ! volume cluster factor
$! home block felepites (ami kell)
$ HM2W_IBMAPSIZE = 32 ! 16 bit, tartalmazza a bitmap meretet block-ban
$ open /read/share=write inf indexf.sys
$ read inf dummy
$ read inf record
$ close inf
$! a home block -bol kiszedem a bitmap meretet
$ mapsize = F$cvui(0,16,f$extract(HM2W_IBMAPSIZE,2, record))
$!
$ headerstart = mapsize + 4 * vcf +1
$ dump/file_header /block=(start='headerstart') indexf.sys