 b6cbf7203b
			
		
	
	
		b6cbf7203b
		
	
	
	
	
		
			
			This patch imports the unmodified current version of NetBSD libc. The NetBSD includes are in /nbsd_include, while the libc code itself is split between lib/nbsd_libc and common/lib/libc.
		
			
				
	
	
		
			228 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			228 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\"	$NetBSD: getenv.3,v 1.25 2010/10/26 22:34:33 wiz Exp $
 | |
| .\"
 | |
| .\" Copyright (c) 1988, 1991, 1993
 | |
| .\"	The Regents of the University of California.  All rights reserved.
 | |
| .\"
 | |
| .\" This code is derived from software contributed to Berkeley by
 | |
| .\" the American National Standards Committee X3, on Information
 | |
| .\" Processing Systems.
 | |
| .\"
 | |
| .\" Redistribution and use in source and binary forms, with or without
 | |
| .\" modification, are permitted provided that the following conditions
 | |
| .\" are met:
 | |
| .\" 1. Redistributions of source code must retain the above copyright
 | |
| .\"    notice, this list of conditions and the following disclaimer.
 | |
| .\" 2. Redistributions in binary form must reproduce the above copyright
 | |
| .\"    notice, this list of conditions and the following disclaimer in the
 | |
| .\"    documentation and/or other materials provided with the distribution.
 | |
| .\" 3. Neither the name of the University nor the names of its contributors
 | |
| .\"    may be used to endorse or promote products derived from this software
 | |
| .\"    without specific prior written permission.
 | |
| .\"
 | |
| .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | |
| .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | |
| .\" SUCH DAMAGE.
 | |
| .\"
 | |
| .\"     from: @(#)getenv.3	8.2 (Berkeley) 12/11/93
 | |
| .\"
 | |
| .Dd October 25, 2010
 | |
| .Dt GETENV 3
 | |
| .Os
 | |
| .Sh NAME
 | |
| .Nm getenv ,
 | |
| .Nm getenv_r ,
 | |
| .Nm putenv ,
 | |
| .Nm setenv ,
 | |
| .Nm unsetenv
 | |
| .Nd environment variable functions
 | |
| .Sh LIBRARY
 | |
| .Lb libc
 | |
| .Sh SYNOPSIS
 | |
| .In stdlib.h
 | |
| .Ft char *
 | |
| .Fn getenv "const char *name"
 | |
| .Ft int
 | |
| .Fn getenv_r "const char *name" "char *buf" "size_t len"
 | |
| .Ft int
 | |
| .Fn setenv "const char *name" "const char *value" "int overwrite"
 | |
| .Ft int
 | |
| .Fn putenv "char *string"
 | |
| .Ft int
 | |
| .Fn unsetenv "const char *name"
 | |
| .Sh DESCRIPTION
 | |
| These functions set, unset and fetch environment variables from the
 | |
| host
 | |
| .Em environment list .
 | |
| For compatibility with differing environment conventions,
 | |
| the
 | |
| .Fn getenv
 | |
| or
 | |
| .Fn getenv_r
 | |
| given argument
 | |
| .Ar name
 | |
| may be appended with an equal sign
 | |
| .Dq Li \&= .
 | |
| .Pp
 | |
| The
 | |
| .Fn getenv
 | |
| function obtains the current value of the environment variable
 | |
| .Ar name .
 | |
| If the variable
 | |
| .Ar name
 | |
| is not in the current environment, a
 | |
| .Dv NULL
 | |
| pointer is returned.
 | |
| .Pp
 | |
| The
 | |
| .Fn getenv_r
 | |
| function obtains the current value of the environment variable
 | |
| .Fa name
 | |
| and copies it to
 | |
| .Fa buf .
 | |
| If
 | |
| .Fa name
 | |
| is not in the current environment, or the string length of the value of
 | |
| .Fa name
 | |
| is longer than
 | |
| .Fa len
 | |
| characters, then \-1 is returned and
 | |
| .Va errno
 | |
| is set to indicate the error.
 | |
| .Pp
 | |
| The
 | |
| .Fn setenv
 | |
| function inserts or resets the environment variable
 | |
| .Ar name
 | |
| in the current environment list.
 | |
| If the variable
 | |
| .Ar name
 | |
| does not exist in the list,
 | |
| it is inserted with the given
 | |
| .Ar value .
 | |
| If the variable does exist, the argument
 | |
| .Ar overwrite
 | |
| is tested; if
 | |
| .Ar overwrite is
 | |
| zero, the
 | |
| variable is not reset, otherwise it is reset
 | |
| to the given
 | |
| .Ar value .
 | |
| .Pp
 | |
| The
 | |
| .Fn putenv
 | |
| function takes an argument of the form
 | |
| .Dq name=value
 | |
| and it will set the environment variable
 | |
| .Dq name
 | |
| equal to
 | |
| .Dq value
 | |
| by altering an existing entry, or creating a new one if an existing
 | |
| one does not exist.
 | |
| The actual string argument passed to
 | |
| .Fn putenv
 | |
| will become part of the environment.
 | |
| If one changes the string, the environment will also change.
 | |
| .Pp
 | |
| The
 | |
| .Fn unsetenv
 | |
| function
 | |
| deletes all instances of the variable name pointed to by
 | |
| .Fa name
 | |
| from the list.
 | |
| .Sh RETURN VALUES
 | |
| The functions
 | |
| .Fn getenv_r ,
 | |
| .Fn setenv ,
 | |
| .Fn putenv ,
 | |
| and
 | |
| .Fn unsetenv
 | |
| return zero if successful; otherwise the global variable
 | |
| .Va errno
 | |
| is set to indicate the error and a
 | |
| \-1 is returned.
 | |
| .Pp
 | |
| If
 | |
| .Fn getenv
 | |
| is successful, the string returned should be considered read-only.
 | |
| .Sh ERRORS
 | |
| .Bl -tag -width Er
 | |
| .It Bq Er EINVAL
 | |
| The
 | |
| .Fa name
 | |
| argument to
 | |
| .Fn setenv
 | |
| or
 | |
| .Fn unsetenv
 | |
| is a null pointer, points to an empty string, or points to a string
 | |
| containing an
 | |
| .Dq Li \&=
 | |
| character.
 | |
| The
 | |
| .Fa value
 | |
| argument to
 | |
| .Fn setenv
 | |
| is a null pointer.
 | |
| The
 | |
| .Fa string
 | |
| argument to
 | |
| .Fn putenv
 | |
| is a null pointer, or points to a string that either starts with a
 | |
| .Dq Li \&=
 | |
| character or does not contain one at all.
 | |
| .It Bq Er ENOMEM
 | |
| The function
 | |
| .Fn setenv
 | |
| or
 | |
| .Fn putenv
 | |
| failed because they were unable to allocate memory for the environment.
 | |
| .El
 | |
| .Pp
 | |
| The function
 | |
| .Fn getenv_r
 | |
| can return the following errors:
 | |
| .Bl -tag -width Er
 | |
| .It Bq Er ENOENT
 | |
| The variable
 | |
| .Fa name
 | |
| was not found in the environment.
 | |
| .It Bq Er ERANGE
 | |
| The value of the named variable is too long to fit in the supplied buffer.
 | |
| .El
 | |
| .Sh SEE ALSO
 | |
| .Xr csh 1 ,
 | |
| .Xr sh 1 ,
 | |
| .Xr execve 2 ,
 | |
| .Xr environ 7
 | |
| .Sh STANDARDS
 | |
| The
 | |
| .Fn getenv
 | |
| function conforms to
 | |
| .St -ansiC .
 | |
| The
 | |
| .Fn putenv
 | |
| function conforms to
 | |
| .St -xpg4 .
 | |
| The
 | |
| .Fn unsetenv
 | |
| function conforms to
 | |
| .St -p1003.1-2001 .
 | |
| .Sh HISTORY
 | |
| The functions
 | |
| .Fn setenv
 | |
| and
 | |
| .Fn unsetenv
 | |
| appeared in
 | |
| .At v7 .
 | |
| The
 | |
| .Fn putenv
 | |
| function appeared in
 | |
| .Bx 4.3 Reno .
 |