dir - Format of directories
A directory behaves like an ordinary file except that no user may write
into a directory. The fact that a file is a directory is indicated by a
bit in the flag word of its inode entry. See the fs reference page.
The POSIX standard way of returning directory entries is in directory entry
structures, which are of variable length. Each directory entry has a
struct direct at the front of it, containing its inode number, the length
of the entry, and the length of the name contained in the entry. These are
followed by the name padded to a 4-byte boundary with null bytes. All
names are guaranteed null terminated. The maximum length of a name in a
directory is _D_NAME_MAX.
By convention, the first two entries in each directory are for . (dot) and
.. (dot-dot). The first is an entry for the directory itself. The second
is for the parent directory. The meaning of .. (dot-dot) is modified for
the root directory (/) of the master file system, where .. (dot-dot) has
the same meaning as . (dot).