The layout on disk is as follows

+------------------+
|Magic Value (0xFC)| <----+ Each block begins with a magic value
+------------------+
| Rec Size (byte)  |
+------------------+
| Rec Count (byte) |
+------------------+

      Record 1 (Rec size) <---+
                              + A block is a collection of records
      Record n (Rec size) <---+

+------------------+
|Magic Value (0xFC)|
+------------------+
| Rec Size (byte)  |
+------------------+
| Rec Count (byte) |
+------------------+
|Magic Value (0xFC)| <----+ The file ends with a magic value
+------------------+
             http://www.asciiflow.com/

A record is used to partially fill C structs. For complete structs the count should be 0 and the memory can be copied at once