dnvlist_get
,
dnvlist_take
— API for
getting name/value pairs with a default value
Name/value pairs library (libnv, -lnv)
#include
<sys/dnv.h>
bool
dnvlist_get_bool
(const
nvlist_t *nvl, const char
*name, bool
defval);
uint64_t
dnvlist_get_number
(const
nvlist_t *nvl, const char
*name, uint64_t
defval);
char *
dnvlist_get_string
(const
nvlist_t *nvl, const char
*name, const char
*defval);
nvlist_t *
dnvlist_get_nvlist
(const
nvlist_t *nvl, const char
*name, nvlist_t
*defval);
int
dnvlist_get_descriptor
(const
nvlist_t *nvl, const char
*name, int
defval);
void *
dnvlist_get_binary
(const
nvlist_t *nvl, const char
*name, size_t
*sizep, void
*defval, size_t
defsize);
bool
dnvlist_take_bool
(const
nvlist_t *nvl, const char
*name, bool
defval);
uint64_t
dnvlist_take_number
(const
nvlist_t *nvl, const char
*name, uint64_t
defval);
char *
dnvlist_take_string
(const
nvlist_t *nvl, const char
*name, const char
*defval);
nvlist_t *
dnvlist_take_nvlist
(const
nvlist_t *nvl, const char
*name, nvlist_t
*defval);
int
dnvlist_take_descriptor
(const
nvlist_t *nvl, const char
*name, int
defval);
void *
dnvlist_take_binary
(const
nvlist_t *nvl, const char
*name, size_t
*sizep, void
*defval, size_t
defsize);
The libnv
library permits easy management
of name/value pairs and can send and receive them over sockets. For more
information, see
nv(9).
The dnvlist_get
functions return the value
associated with name. If an element named
name does not exist, the function returns the value
provided in defval. Returned strings, nvlists,
descriptors, binaries, or arrays must not be modified by the user since they
still belong to the nvlist. If the nvlist is in an error state, attempts to
use any of these functions will cause the program to abort.
The dnvlist_take
functions
return the value associated with name and removes the
associated element from nvl. If an element named
name does not exist, the value provided in
defval
is returned. When the value is a string,
binary, or array value, the caller is responsible for freeing returned
memory with
free
(3).
When the value is an nvlist, the caller is responsible for destroying the
returned nvlist with
nvlist_destroy
().
When the value is a descriptor, the caller is responsible for closing the
returned descriptor with
close
(2).
The dnv
API appeared in
FreeBSD 11.0.