Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
KENV(2)			  FreeBSD System Calls Manual		       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 variables.  It sup-
     ports 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	       Get the value of	the variable with the given name.  The
		       size of the value buffer	is given by len, which should
		       be at least KENV_MVALLEN	+ 1 bytes to avoid truncation
		       and to ensure NUL termination.

     KENV_SET	       Set or add a variable.  The name	and value are limited
		       to KENV_MNAMELEN	and KENV_MVALLEN characters, respec-
		       tively (not including the NUL terminator.) The len ar-
		       gument indicates	the length of the value	and must in-
		       clude the NUL terminator.  This option is only avail-
		       able to the superuser.

     KENV_UNSET	       Unset the variable with the given name.	The value and
		       len arguments are ignored.  This	option is only avail-
		       able to the superuser.

     KENV_DUMP	       Dump as much of the dynamic kernel environment as will
		       fit in value, whose size	is given in len.  If value is
		       NULL, kenv() will return	the number of bytes required
		       to copy out the entire environment.  The	name is	ig-
		       nored.

     KENV_DUMP_LOADER  Dump the	static environment provided by loader(8), with
		       semantics identical to KENV_DUMP.  Duplicate and	mal-
		       formed variables	originally present in this environment
		       are discarded by	the kernel and will not	appear in the
		       output.

     KENV_DUMP_STATIC  Dump the	static environment defined by the kernel
		       config(5).  The semantics are identical to
		       KENV_DUMP_LOADER.

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_GET	or
			KENV_UNSET.

     [ENOENT]		The requested environment is not available for a
			KENV_DUMP_LOADER or KENV_DUMP_STATIC.  The kernel is
			configured to destroy these environments by default.

     [EPERM]		A user other than the superuser	attempted to set or
			unset a	kernel environment variable.

     [EFAULT]		A bad address was encountered while attempting to copy
			in user	arguments or copy out value(s).

     [ENAMETOOLONG]	The name or the	value is longer	than KENV_MNAMELEN or
			KENV_MVALLEN characters, respectively, or len did not
			include	the NUL	terminator for a KENV_SET.

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

FreeBSD	13.0			 June 20, 2021			  FreeBSD 13.0

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=kenv&sektion=2&manpath=FreeBSD+13.1-RELEASE+and+Ports>

home | help