[hfs-user] Catalog Thread record size ?

Simon Bazley sibaz@sibaz.com
Tue, 16 Apr 2002 09:57:33 +0100


Why would you want to multiply 256 by 2? a byte is 1, a char is 1,
therefore 256 chars are 256.

Entwicklung wrote:

> Hello,        I just have a question regarding the size of the HFS
> Plus - Catalog Thread Record specified in the Apple Universal
> Interfaces headers - typedef UInt16                UniChar; /*
> HFSUniStr255 is the Unicode equivalent of Str255 */
> struct HFSUniStr255 {
>   UInt16               length;                 /* number of unicode
> characters */
>   UniChar             unicode[255];           /* unicode characters */
>
> }; /* HFS Plus catalog thread record -- 264 bytes */
> struct HFSPlusCatalogThread {
>   UInt16                      recordType;             /* record type
> */
>   UInt16                      reserved;               /* reserved -
> set to zero */
>   HFSCatalogNodeID    parentID;               /* parent ID for this
> catalog node */
>   HFSUniStr255           nodeName;               /* name of this
> catalog node (variable length) */
> };
> typedef struct HFSPlusCatalogThread     HFSPlusCatalogThread; Based on
> the above declarations shouldn't the size for the HFSPlus catalog
> thread record be 2+2+4 (since CNID's are 4 bytes long ) + 256*2 =
> 264+256 instead of 264 as mentioned above ? I think someone probably
> forgot to multiply the 256 by 2 but I just wanted to make sure that is
> an error. I'd be happy to hear some feedback from the list wrt
> this. Best Regards,Nandini Hengen