This section and the following sections contain a detailed description of the IDL save file format. As described above, and IDL file consists of a stream of tagged records:
Type | Name | Description |
BYTE2 | SIGNATURE | IDL SAVE file signature (=BYTE(['S','R'])) |
BYTE2 | RECFMT | IDL SAVE record format (=['00'xb, '04'xb]) |
Record 1 | ||
Record 2 | ||
Record -- END_MARKER |
However, these records must appear in a certain order, which also depends on which version of IDL is being used. These records might be described as the save file ``preamble,'' which give important metadata about the information. For IDL 4 this preamble consists of only one record:
Type | Name | Description |
TIMESTAMP | TIMESTAMP | Save file history information |
The first record must be of type TIMESTAMP (see below for record types). Beyond that, save files produced by IDL 4 do not contain heap data. For IDL version 5 and beyond, the preamble is extended to include several more records after the TIMESTAMP record, which describes the file version information, such as which version of IDL was used to create the file:
Type | Name | Description |
TIMESTAMP | TIMESTAMP | Save file history information |
VERSION | VERSION | Save session IDL information |
HEAP_HEADER | HEAP_HEADER | (optional) Heap index information |
-- | PROMOTE64 | (optional IDL 5.4 only) if file has ULONG64 offsets |
NOTICE | NOTICE | (optional) Disclaimer notice |
The HEAP_HEADER record only appears if the save file contains heap data (i.e., pointers). In IDL 5.4, the PROMOTE64 record indicates the presence of ULONG64 record offsets for storing files larger than 4 gigabytes (IDL 5.4 only).