---
name: "cap_mkdb"
section: "1"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/cap_mkdb"
---

# cap\_mkdb(1)

create capability database

## NAME

**cap\_mkdb** – create capability database

## SYNOPSIS

**cap\_mkdb** \[**-b** \| **-l**\] \[**-v**\] \[**-f** *outfile*\] *file ...*

## DESCRIPTION

The **cap\_mkdb** utility builds a hashed database out of the [getcap(3)](/getcap/3.md) logical database constructed by the concatenation of the specified files.

The database is named by the basename of the first file argument and the string “.db”. The [getcap(3)](/getcap/3.md) routines can access the database in this form much more quickly than they can the original text file(s).

The \`\`tc'' capabilities of the records are expanded before the record is stored into the database.

The following options are available:

- **-b**

  Use big-endian byte order for database metadata.

- **-f** *outfile*

  Specify a different database basename.

- **-l**

  Use little-endian byte order for database metadata.

- **-v**

  Print out the number of capability records in the database.

The **-b** and **-l** flags are mutually exclusive. The default byte ordering is the current host order.

## FORMAT

Each record is stored in the database using two different types of keys.

The first type is a key which consists of the first capability of the record (not including the trailing colon (\`\`:'')) with a data field consisting of a special byte followed by the rest of the record. The special byte is either a 0 or 1, where a 0 means that the record is okay, and a 1 means that there was a \`\`tc'' capability in the record that could not be expanded.

The second type is a key which consists of one of the names from the first capability of the record with a data field consisting a special byte followed by the first capability of the record. The special byte is a 2.

In normal operation names are looked up in the database, resulting in a key/data pair of the second type. The data field of this key/data pair is used to look up a key/data pair of the first type which has the real data associated with the name.

## EXIT STATUS

The **cap\_mkdb** utility exits 0 on success, and \>0 if an error occurs.

## SEE ALSO

[dbopen(3)](/dbopen/3.md), [getcap(3)](/getcap/3.md), [termcap(5)](/termcap/5.md)
