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

FreeBSD Manual Pages

  
 
  

home | help
GETENV(3)		 BSD Library Functions Manual		     GETENV(3)

NAME
     getenv, putenv, setenv, unsetenv -- environment variable functions

LIBRARY
     Standard C	Library	(libc, -lc)

SYNOPSIS
     #include <stdlib.h>

     char *
     getenv(const char *name);

     int
     setenv(const char *name, const char *value, int overwrite);

     int
     putenv(const char *string);

     void
     unsetenv(const char *name);

DESCRIPTION
     These functions set, unset	and fetch environment variables	from the host
     environment list.	For compatibility with differing environment conven-
     tions, the	given arguments	name and value may be appended and prepended,
     respectively, with	an equal sign "=".

     The getenv() function obtains the current value of	the environment	vari-
     able, name.

     The setenv() function inserts or resets the environment variable name in
     the current environment list.  If the variable name does not exist	in the
     list, it is inserted with the given value.	 If the	variable does exist,
     the argument overwrite is tested; if overwrite is zero, the variable is
     not reset,	otherwise it is	reset to the given value.

     The putenv() function takes an argument of	the form ``name=value''	and is
     equivalent	to:

	   setenv(name,	value, 1);

     The unsetenv() function deletes all instances of the variable name
     pointed to	by name	from the list.

RETURN VALUES
     The getenv() function returns the value of	the environment	variable as a
     NUL-terminated string.  If	the variable name is not in the	current	envi-
     ronment, NULL is returned.

     The setenv() and putenv() functions return	the value 0 if successful;
     otherwise the value -1 is returned	and the	global variable	errno is set
     to	indicate the error.

ERRORS
     [ENOMEM]		The function setenv() or putenv() failed because they
			were unable to allocate	memory for the environment.

SEE ALSO
     csh(1), sh(1), execve(2), environ(7)

STANDARDS
     The getenv() function conforms to ISO/IEC 9899:1990 ("ISO C90").

HISTORY
     The functions setenv() and	unsetenv() appeared in Version 7 AT&T UNIX.
     The putenv() function appeared in 4.3BSD-Reno.

BUGS
     Successive	calls to setenv() or putenv() assigning	a differently sized
     value to the same name will result	in a memory leak.  The FreeBSD seman-
     tics for these functions (namely, that the	contents of value are copied
     and that old values remain	accessible indefinitely) make this bug un-
     avoidable.	 Future	versions may eliminate one or both of these semantic
     guarantees	in order to fix	the bug.

BSD			       December	11, 1993			   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | STANDARDS | HISTORY | BUGS

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

home | help