setenv man page on YellowDog

Man page or keyword search:  
man Server   18644 pages
apropos Keyword Search (all sections)
Output format
YellowDog logo
[printable version]

SETENV(P)		   POSIX Programmer's Manual		     SETENV(P)

NAME
       setenv - add or change environment variable

SYNOPSIS
       #include <stdlib.h>

       int setenv(const char *envname, const char *envval, int overwrite);

DESCRIPTION
       The setenv() function shall update or add a variable in the environment
       of the calling process. The envname argument points to  a  string  con‐
       taining the name of an environment variable to be added or altered. The
       environment variable shall be set to the value to which envval  points.
       The function shall fail if envname points to a string which contains an
       '=' character. If the environment variable  named  by  envname  already
       exists  and  the	 value	of  overwrite  is non-zero, the function shall
       return success and the environment shall be updated. If the environment
       variable	 named by envname already exists and the value of overwrite is
       zero, the function shall	 return	 success  and  the  environment	 shall
       remain unchanged.

       If the application modifies environ or the pointers to which it points,
       the behavior of setenv() is  undefined.	The  setenv()  function	 shall
       update the list of pointers to which environ points.

       The  strings  described	by envname and envval are copied by this func‐
       tion.

       The setenv() function need not be reentrant. A  function	 that  is  not
       required to be reentrant is not required to be thread-safe.

RETURN VALUE
       Upon successful completion, zero shall be returned. Otherwise, -1 shall
       be returned, errno set to indicate the error, and the environment shall
       be unchanged.

ERRORS
       The setenv() function shall fail if:

       EINVAL The  name argument is a null pointer, points to an empty string,
	      or points to a string containing an '=' character.

       ENOMEM Insufficient memory was available to add a variable or its value
	      to the environment.

       The following sections are informative.

EXAMPLES
       None.

APPLICATION USAGE
       See  exec()  ,  for  restrictions on changing the environment in multi-
       threaded applications.

RATIONALE
       Unanticipated results may occur if setenv() changes the external	 vari‐
       able environ. In particular, if the optional envp argument to main() is
       present, it is not changed, and thus may point to an obsolete  copy  of
       the environment (as may any other copy of environ). However, other than
       the aforementioned restriction, the developers of  IEEE Std 1003.1-2001
       intended that the traditional method of walking through the environment
       by way of the environ pointer must be supported.

       It was decided that  setenv()  should  be  required  by	this  revision
       because	it  addresses  a  piece of missing functionality, and does not
       impose a significant burden on the implementor.

       There was considerable debate as to whether the System V putenv() func‐
       tion  or	 the  BSD  setenv() function should be required as a mandatory
       function.  The setenv() function was chosen because  it	permitted  the
       implementation of the unsetenv() function to delete environmental vari‐
       ables, without specifying an additional interface. The  putenv()	 func‐
       tion is available as an XSI extension.

       The  standard developers considered requiring that setenv() indicate an
       error when a call to  it	 would	result	in  exceeding  {ARG_MAX}.  The
       requirement  was	 rejected since the condition might be temporary, with
       the application eventually reducing the environment size. The  ultimate
       success	or  failure depends on the size at the time of a call to exec,
       which returns an indication of this error condition.

FUTURE DIRECTIONS
       None.

SEE ALSO
       exec() , getenv()  ,  unsetenv()	 ,  the	 Base  Definitions  volume  of
       IEEE Std 1003.1-2001, <stdlib.h>, <sys/types.h>, <unistd.h>

COPYRIGHT
       Portions	 of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       --  Portable  Operating	System	Interface (POSIX), The Open Group Base
       Specifications Issue 6, Copyright (C) 2001-2003	by  the	 Institute  of
       Electrical  and	Electronics  Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE and
       The  Open Group Standard, the original IEEE and The Open Group Standard
       is the referee document. The original Standard can be  obtained	online
       at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group		     2003			     SETENV(P)
[top]

List of man pages available for YellowDog

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net