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
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