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

FreeBSD Manual Pages

  
 
  

home | help
KENV(2)			    BSD	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	 Returns the value associated with the named kernel environ-
		 ment 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 supe-
		 ruser.

     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 re-
		 quired	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 vari-
     able 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>.

BSD				April 17, 2002				   BSD

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

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

home | help