ATTRDB(6) ATTRDB(6)
NAME
attrdb - data base of attribute-value pairs
DESCRIPTION
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 commen-
tary). 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:
database=
file=file1
Page 1 Plan 9 (printed 10/24/25)
ATTRDB(6) ATTRDB(6)
file=file2
file=file3
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 contain-
ing 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).
SEE ALSO
cfg(2), attrdb(2), ipattr(2), ndb(6), cs(8), dns(8)
Page 2 Plan 9 (printed 10/24/25)