table of contents
other sections
KENV(2) | System Calls Manual | KENV(2) |
NAME¶
kenv — kernel environmentLIBRARY¶
Standard C Library (libc, -lc)SYNOPSIS¶
#include <kenv.h> intkenv(int action, const char *name, char *value, int len);
DESCRIPTION¶
The kenv() system call manipulates kernel environment variables. 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
environment 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 variable. 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 option 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 environment.
KENV_DUMP
it is
ignored.
The value argument contains either the value to set the
environment 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 return 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 ofKENV_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
option, 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
orKENV_UNSET
. - [
EPERM
] - a user other than the superuser attempted to set or unset a kernel environment variable.
- [
EFAULT
] - bad address was encountered while attempting 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 thanKENV_MVALLEN
.
SEE ALSO¶
kenv(1)AUTHORS¶
This manual page was written by Chad David ⟨davidc@FreeBSD.org⟩. The kenv() system call was written by Maxime Henrion ⟨mux@FreeBSD.org⟩.April 17, 2002 | Debian |