.\" Copyright 2001 Andreas Dilger (adilger@turbolinux.com)
.\"
.\" This man page was created for libblkid.so.1.0 from e2fsprogs-1.24.
.\"
.\" This file may be copied under the terms of the GNU Lesser General Public
.\" License.
.\"
.\" Created  Wed Sep 14 12:02:12 2001, Andreas Dilger
.TH LIBBLKID 3 "May 2009" "util-linux" "Programmer's Manual"
.SH NAME
libblkid \- block device identification library
.SH SYNOPSIS
.B #include <blkid.h>
.sp
.B cc
.I file.c
.B \-lblkid
.SH DESCRIPTION
The
.B libblkid
library is used to identify block devices (disks) as to their content (e.g.
filesystem type) as well as extracting additional information such as
filesystem labels/volume names, unique identifiers/serial numbers.
A common use is to allow use of LABEL= and UUID= tags instead of hard-coding
specific block device names into configuration files.
.P
The low-level part of the library also allows to extract information about
partitions and block device topology.
.P
The high-level part of the library keeps information about block devices in a
cache file and is verified to still be valid before being returned to the user
(if the user has read permission on the raw block device, otherwise not).
The cache file also allows unprivileged users (normally anyone other
than root, or those not in the "disk" group) to locate devices by label/id.
The standard location of the cache file can be overridden by the
environment variable BLKID_FILE.
.P
In situations where one is getting information about a single known device, it
does not impact performance whether the cache is used or not (unless you are
not able to read the block device directly).
.P
The high-level part of the library supports two methods to evaluate LABEL/UUID.
It reads information directly from a block device or read information from
/dev/disk/by-* udev symlinks.  The udev is preferred method by default.
.P
If you are dealing with
multiple devices, use of the cache is highly recommended (even if empty) as
devices will be scanned at most one time and the on-disk cache will be
updated if possible.
.P
In some cases (modular kernels), block devices are not even visible until
after they are accessed the first time, so it is critical that there is
some way to locate these devices without enumerating only visible devices,
so the use of the cache file is
.B required
in this situation.
.SH CONFIGURATION FILE
The standard location of the
.I /etc/blkid.conf
config file can be overridden by the environment variable BLKID_CONF.  For more
details about the config file see
.BR blkid (8)
man page.
.SH AUTHOR
.B libblkid
was written by Andreas Dilger for the ext2 filesystem utilities, with input
from Ted Ts'o.  The library was subsequently heavily modified by Ted Ts'o.

The low-level probing code was rewritten by Karel Zak.
.SH COPYING
.B libblkid
is available under the terms of the GNU Library General Public License (LGPL),
version 2 (or at your discretion any later version).
.SH "SEE ALSO"
.BR blkid (8),
.BR findfs (8)
.SH AVAILABILITY
libblkid is part of the util-linux package since version 2.15 and is available from
https://www.kernel.org/pub/linux/utils/util-linux/.
