[manual index][section index]


attrdb - data base of attribute-value pairs


An attribute data base is formed from one or more text files, each containing groups of related attribute-value pairs. A given data base typically stores data relating to a single logical domain. For instance, Inferno uses an attribute data base ndb(6) to organise network configuration data. Attrdb (2) is typically used by applications to search the data.

Each entry in the data base consists of one or more lines containing attribute/value pairs, separated by white space. The first line of an entry starts a line; subsequent lines in the entry are preceded by white space (spaces or tabs). Pairs on the same line bind tighter together than others in the same entry. (This is important when one known pair is used to find another by attribute name.) The character `#' causes the rest of the line to be ignored (eg, as commentary). Empty lines are also ignored.

Attribute/value pairs are written as attribute=value, which can be abbreviated to attribute= or simply attribute if the attribute has no value. A value that contains white space, or any of the characters #'"= must be quoted, using either the single or double quote character. Within a quoted string, two adjacent quotes can be written to enter a quote in the string. For example:

name='Paul Wilson' business company='Fruitbat Villas Ltd'
   title='Key Grip'
   address='39 Willis Street, York' tel='+44 1904 20927'
   address='On the road' tel='+44 7904 169 704'
name='James Mason' personal=
   address='10 St James''s, East Grinstead' tel='01342 7674'

Note that the binding rule associates each address in the first entry most closely with the tel on the same line. The attributes business (first entry) and personal (second entry) are both attributes without value.

A single logical data base can be formed by concatenating several physical files, each having the format above. One of the files must contain an entry (typically first in the file) containing a database attribute and a sequence of attributes of the form file=filename. For example:


The logical database is formed by (logically) concatenating the contents of each filename in the order listed (ie, file1, file2, and file3 above). Typically the file containing the database attribute appears in the list as well, at the point where its contents should go; if it does not appear at all, it is assumed to be first. The name of that file is also used as the name of the logical database, for instance when opened by attrdb(2).


cfg(2), attrdb(2), ipattr(2), ndb(6), cs(8), dns(8)

ATTRDB(6 ) Rev:  Sun Oct 26 12:39:22 GMT 2008