# FreeSegments ## freesegments.txt ``` //Format of FreeSegments record, release 3.02.06. It is never compressed. //It is probably not accessed by its key, but from its offset given in the file header. // ----------TKey--------------- // byte 0->3 Nbytes = Number of bytes in compressed record (TKey+data) TKey::fNbytes // 4->5 Version = TKey class version identifier TKey::fVersion // 6->9 ObjLen = Number of bytes of uncompressed data TKey::fObjLen // 10->13 Datime = Date and time when record was written to file TKey::fDatime // | (year-1995)<<26|month<<22|day<<17|hour<<12|minute<<6|second // 14->15 KeyLen = Number of bytes in key structure (TKey) TKey::fKeyLen // 16->17 Cycle = Cycle of key TKey::fCycle // 18->21 SeekKey = Byte offset of record itself (consistency check) TKey::fSeekKey // 22->25 SeekPdir = Byte offset of parent directory record (TFile) TKey::fSeekPdir // 26->26 lname = Number of bytes in the class name (5) TKey::fClassName // 27->.. ClassName = Object Class Name ("TFile") TKey::fClassName // 0->0 lname = Number of bytes in the object name TNamed::fName // 1->.. Name = lName bytes with the name of the object TNamed::fName // 0->0 lTitle = Number of bytes in the object title TNamed::fTitle // 1->.. Title = lTitle bytes with the title of the object TNamed::fTitle // ----------DATA--------------- // 0->1 Version = TFree class version identifier TFree::Class_Version() // 2->5 fFirst = First free byte of first free segment TFree::fFirst // 6->9 fLast = Byte after last free byte of first free segment TFree::fLast // .... Sequentially, Version, fFirst and fLast of additional free segments. // .... There is always one free segment beginning at file end and ending before 2000000000. ```