background image
Bionic Buffalo Tech Note #66: File Identification Headers
offset
length
type
description
x + 44
4
unsigned integer
earliest version of software able to read this file
x + 48
2
unsigned integer
length of unstructured information
x + 50
2
unsigned integer
length of text string (including terminating NULL)
x + 52
4
unsigned integer
required alignment of file contents
x + 56
2
unsigned integer
length of rights string (including terminating NULL)
x + 58
6
octet sequence
unused, reserved for future use, must be set to zeroes
The total length of the fixed information, for each aspect, is 64 octets. (The value x in the offset
column is 32 for application information, 96 for organization information, and 160 for owner
information.)
By including the required earliest version of software able to read the file, when software reads a
newer format file, it can determine if it can safely process it. In case the file cannot be read, it is
possible to produce an error message indicating which version of the software must be used. In either
case, the version information may also be used to remind the user that upgrading the software is
possible and may be desirable.
If a program requires that the contents proper of the file be aligned on a certain boundary (for example,
on a 4-byte boundary or 512-byte boundary for efficient memory or disk access), then it may set the
alignment field to the required value to indicated this preference. Padding may be added after the
identification header to cause this alignment to occur.
Although the length of the unstructured information is represented using a 16-bit number, the
maximum value supported is 4096. If the value is zero, then there is no unstructured information.
The six strings begin at file offset 224. The Unicode character set is used, encoded UTF-8, and the
string is NULL terminated. If any string is empty, that string's NULL terminator still must be present.
Although the length of the string is given in the fixed information by a 16-bit number, the maximum
value supported is 256 octets, not including the NULL terminator. When multibyte encoding is
necessary, this may represent fewer than 256 characters. Only printable characters are permitted in the
string; control characters are not allowed. 
The first of the two text strings for each aspect should be a short description of that aspect. For
example, “ticket posting utility v.5”, “congo A.0.3.1 record-numbered dataset”, or “anonymous visitor
no. 138”. The second of the two text strings, the rights string, may contain copyright notices, security
classifications, and similar items, if they are present. The text strings are intended for human
understanding, and should give the reader a quick notion of what the application, organization, and
owner are, as well as notice of any rights asserted on the contents of the file.
The unstructured information is proprietary to the application, organization, or owner. However, it is
public in the sense that it is intended to be read (but not written) by other software. Examples of use
include:
Page 5 of 7