LIBNVPAIR(3LIB) Interface Libraries LIBNVPAIR(3LIB)

NAME


libnvpair - name-value pair library

SYNOPSIS


cc [ flag... ] file... -lnvpair [ library... ]
#include <libnvpair.h>


DESCRIPTION


The libnvpair library exports a set of functions for managing name-
value pairs.


The library defines four opaque handles:

nvpair_t
handle to a name-value pair


nvlist_t
handle to a list of name-value pairs


nv_alloc_t
handle to a pluggable allocator


nv_alloc_ops_t
handle to pluggable allocator operations


The library supports the following operations:

o Allocate and free an nvlist_t.

o Specify the allocater to be used when manipulating an
nvlist_t.

o Add and remove an nvpair_t from a list.

o Search nvlist_t for a specified name pair.

o Pack an nvlist_t into a contiguous buffer.

o Expand a packed nvlist into a searchable nvlist_t.

When items are retrieved from a list, the memory associated with them
is owned by the nvlist_t itself and therefore their lifetimes are
tied together. Calling nvlist_free(3NVPAIR) will free that data,
after which any pointers obtained by having called an nvlist lookup
function must not be used.

Conversely, when adding items to an nvlist_t they are copied into the
list and therefore it is up to the caller to free any memory for the
original object. For example, if you allocate memory for a char *
and add it to a nvlist_t with nvlist_add_string(3NVPAIR), when the
nvlist_t is freed with nvlist_free(3NVPAIR) the originally allocated
char * will not be freed along with it. See
nvlist_add_nvlist(3NVPAIR) for more information.

INTERFACES


The shared object libnvpair.so.1 provides the public interfaces
defined below. See Intro(3) for additional information on shared
object interfaces.


nvlist_add_boolean nvlist_add_boolean_value
nvlist_add_boolean_array nvlist_add_byte
nvlist_add_byte_array nvlist_add_double
nvlist_add_int8 nvlist_add_int8_array
nvlist_add_int16 nvlist_add_int16_array
nvlist_add_int32 nvlist_add_int32_array
nvlist_add_int64 nvlist_add_int64_array
nvlist_add_nvlist nvlist_add_nvlist_array
nvlist_add_nvpair nvlist_add_string
nvlist_add_string_array nvlist_add_uint8
nvlist_add_uint8_array nvlist_add_uint16
nvlist_add_uint16_array nvlist_add_uint32
nvlist_add_uint32_array nvlist_add_uint64
nvlist_add_uint64_array nvlist_alloc
nvlist_dup nvlist_empty
nvlist_exists
nvlist_free nvlist_lookup_boolean
nvlist_lookup_boolean_value nvlist_lookup_boolean_array
nvlist_lookup_byte nvlist_lookup_byte_array
nvlist_lookup_double nvlist_lookup_int8
nvlist_lookup_int8_array nvlist_lookup_int16
nvlist_lookup_int16_array nvlist_lookup_int32
nvlist_lookup_int32_array nvlist_lookup_int64
nvlist_lookup_int64_array nvlist_lookup_nvlist
nvlist_lookup_nvlist_array nvlist_lookup_nv_alloc
nvlist_lookup_nvpair nvlist_lookup_pairs
nvlist_lookup_string nvlist_lookup_string_array
nvlist_lookup_uint8 nvlist_lookup_uint8_array
nvlist_lookup_uint16 nvlist_lookup_uint16_array
nvlist_lookup_uint32 nvlist_lookup_uint32_array
nvlist_lookup_uint64 nvlist_lookup_uint64_array
nvlist_merge nvlist_next_nvpair
nvlist_pack nvlist_remove
nvlist_remove_all nvlist_size
nvlist_unpack nvlist_xalloc
nvlist_xdup nvlist_xpack
nvlist_xunpack nvpair_name
nvpair_type nvpair_value_boolean_array
nvpair_value_boolean_value nvpair_value_byte
nvpair_value_byte_array nvpair_value_double
nvpair_value_int8 nvpair_value_int8_array
nvpair_value_int16 nvpair_value_int16_array
nvpair_value_int32 nvpair_value_int32_array
nvpair_value_int64 nvpair_value_int64_array
nvpair_value_nvlist nvpair_value_nvlist_array
nvpair_value_string nvpair_value_string_array
nvpair_value_uint8 nvpair_value_uint8_array
nvpair_value_uint16 nvpair_value_uint16_array
nvpair_value_uint32 nvpair_value_uint32_array
nvpair_value_uint64 nvpair_value_uint64_array
nv_alloc_init nv_alloc_fini
nv_alloc_reset


FILES


/lib/libnvpair.so.1
shared object


/lib/64/libnvpair.so.1
64-bit shared object


ATTRIBUTES


See attributes(7) for description of the following attributes:


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
|MT-Level | MT-Safe |
+--------------------+-----------------+

SEE ALSO


Intro(3), attributes(7)

April 19, 2026 LIBNVPAIR(3LIB)