aboutsummaryrefslogblamecommitdiffstats
path: root/libenv_get_complete_list.3
blob: 83038a3cad4a9e96dda956213c2d6c8fb70036df (plain) (tree)

















































































                                                                                                               
.TH LIBENV_GET_COMPLETE_LIST 3 libenv
.SH NAME
libenv_get_complete_list - List all recognised environment variables

.SH SYNOPSIS
.nf
#include <libenv.h>

struct libenv_variable {
	const char *\fIname\fP;
	const uint64_t *\fIclasses\fP;
};

const struct libenv_variable *libenv_get_complete_list(size_t *\fInclasswords_out\fP, size_t *\fIcount_out\fP);
.fi
.PP
Link with
.IR -lenv .

.SH DESCRIPTION
The
.BR libenv_get_complete_list ()
function returns a list of all environment variables the library knows of,
regardless of whether they are set in the environment. The function returns
a list of
.I struct libenv_variable
elements, for each of them,
.I .name
will be set to the name of the environment variable and
.I .classes
will be set to a bit field of classes the environment variable
belongs to. If
.IR (.classes[i]>>b)&1 ,
then the
.BR "enum libenv_class" (3)
member with the value
.I i*64+b
describes a class the environment variable belongs to. (Make sure that you
do not compare against values greeater than or equal to
.IR *nclasswords_out*64 .)
The bit corresponding to
.I LIBENV_END
will always be 0.
.PP
Unless
.I nclasswords_out
is
.IR NULL ,
.I *nclasswords_out
will be set to the number of elements
.RB ( uint64_t 's)
in each
.I .classes
for each returned
.IR "struct libenv_variable" .
.PP
Unless
.I count_out
is
.IR NULL ,
.I *count_out
will be set to the number of returned environment variables.

.SH RETURN VALUE
The
.BR libenv_get_complete_list (3)
function returns a statically allocated list of environment variables
along with the classifications; the list will contain
.I *count_out
(as set when the function returns) elements, plus one extra element,
at the end, having both its fields set to
.IR NULL .

.SH ERRORS
None.

.SH SEE ALSO
.BR libenv (7),
.BR enum_libenv_class (3),
.BR libenv_get_chosen_list (3),
.BR libenv_filter_variable_list (3),
.BR libenv_select_variable_list (3).