kenv(2)

NAME

kenv - kernel environment

LIBRARY

Standard C Library (libc, -lc)

SYNOPSIS

#include <kenv.h>
int
kenv(int action, const char *name, char *value, int len);

DESCRIPTION

The kenv() system call manipulates kernel environment vari
ables. It supports the well known userland actions of getting, setting
and unsetting
environment variables, as well as the ability to dump all of
the entries
in the kernel environment.
The action argument can be one of the following:
KENV_GET Returns the value associated with the named
kernel envi
ronment variable. If the variable is not
found, -1 is
returned and the global variable errno is
set to ENOENT.
Only the number of bytes available in value
are copied
out.
KENV_SET Sets or adds a new kernel environment vari
able. This
option is only available to the superuser.
KENV_UNSET Unsets the kernel environment variable name.
If the
variable does not exist, -1 is returned and
the global
variable errno is set to EINVAL. This op
tion is only
available to the superuser.
KENV_DUMP Dumps as much of the kernel environment as
will fit in
value. If value is NULL, kenv() will return
the number
of bytes required to copy out the entire en
vironment.
The name argument is the name of the environment variable to
be affected.
In the case of KENV_DUMP it is ignored.
The value argument contains either the value to set the en
vironment variable name to in the case of KENV_SET, or it points to the
location where
kenv() should copy return data to in the case of KENV_DUMP
and KENV_GET.
If value is NULL in the case of KENV_DUMP, kenv() will re
turn the number
of bytes required to copy out the entire environment.
The len argument indicates how many bytes of storage value
points to.

RETURN VALUES

The kenv() system call returns 0 if successful in the case
of KENV_SET
and KENV_UNSET, and the number of bytes copied into value in
the case of
KENV_DUMP and KENV_GET. If an error occurs, a value of -1
is returned
and the global variable errno is set to indicate the error.

ERRORS

The kenv() system call will fail if:

[EINVAL] The action argument is not a valid op
tion, or the
length of the value is less than 1 for a
KENV_SET.
[ENOENT] no value could be found for name for a
KENV_SET or
KENV_UNSET.
[EPERM] a user other than the superuser attempted
to set or
unset a kernel environment variable.
[EFAULT] bad address was encountered while at
tempting to copy
in user arguments, or copy out value(s).
[ENAMETOOLONG] the name of a variable supplied by the
user is longer
than KENV_MNAMELEN or the value of a
variable is
longer than KENV_MVALLEN.

SEE ALSO

kenv(1)

AUTHORS

This manual page was written by Chad David <davidc@FreeB
SD.org>.
The kenv() system call was written by Maxime Henrion
<mux@FreeBSD.org>.
BSD April 17, 2002
Copyright © 2010-2024 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout