Provided by: freebsd-manpages_9.2+1-1_all bug

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

       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 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 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 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 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 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 than KENV_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>.

Debian                                           April 17, 2002                                          KENV(2)