PDB(4) (Pilot Database) file format


#define dmDBNameLength 32/* 31 chars + 1 null terminator */
struct pdb_header { /* 78 bytes total */
char name[ dmDBNameLength ];
Word attributes;
Word version;
DWord create_time;
DWord modify_time;
DWord backup_time;
DWord modificationNumber;
DWord appInfoID;
DWord sortInfoID;
char type[4];
char creator[4];
DWord id_seed;
DWord nextRecordList;
Word numRecords;
struct pdb_rec_header { /* 8 bytes total */
DWord offset;
struct {
int delete : 1;
int dirty : 1;
int busy : 1;
int secret : 1;
int category : 4;
} attributes;
char uniqueID[3];


The PDB (Pilot Database) file format is used by all models of the Palm Pilot and IBM Workpad. The format consists of a header followed by a set of record headers followed by the records themselves.

Word Sizes

In the SYNOPSIS above, the types ``Byte,'' ``Word,'' and ``DWord'' are used just as in the Pilot headers. The type ``Byte'' is 8 bits; ``Word'' is 16 bits; ``DWord'' is 32 bits. The latter two are in big-endian format.


The C structures given in the SYNOPSIS above are illustrative and most likely will not work in actual C code since compilers align data members on word boundaries.
The PDB file format presented here is not official and was written at the time when PDB file format was not public. It is possibly outdated. The official standard is available on the Palm web page. (SEE ALSO)


Paul J. Lucas <[email protected]> Updated by Erik Schanze <[email protected]>