Sponsored Content
Full Discussion: getenv(3c)
Top Forums Programming getenv(3c) Post 5650 by deaniyoer on Monday 20th of August 2001 05:46:04 AM
Old 08-20-2001
getenv(3c)

Below is an extract from man page of getenv(3c)

NOTES

1> getenv() can be safely called from a multi-thread program.
2> However, care must still be taken when using getenv() and putenv(3C) in a multi-thread program.
3> These routines examine and modify the environment list.
4> This list is shared by all threads in a program.
5> The system prevents the list from being accessed simultaneously by two different threads.
6> However, it does not prevent two threads from successively accessing the environment list using getenv() or putenv(3C)

1a.) Does Line 5 means that at any one time, the system(OS) allows only one thread to read the ENV list?
1b.) If this is true, in the situation when there are many processes trying getenv() at the same time, will that cause a bottleneck (caused by queuing)?

2.) What does Line 6 means? Does it mean 2 differents thread can access ENV list sqeuentially?

Thnx Smilie
 
getenv(3)						     Library Functions Manual							 getenv(3)

Name
       getenv, setenv, unsetenv  - manipulate environment variables

Syntax
       char *getenv(name)
       char *name;

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

       void unsetenv(name)
       char *name;

Description
       The  subroutine	searches  the  environment  list for a string of the form name = value and returns a pointer to the string value if such a
       string is present, otherwise returns the value 0 (NULL).  For further information, see

       The subroutine searches the environment list in the same manner as If the string name is not found, a string  of  the  form  name=value	is
       added  to  the environment.  If it is found, and overwrite is non-zero, its value is changed to value.  The subroutine returns 0 on success
       and -1 on failure, where failure is caused by an inability to allocate space for the environment.

       The subroutine removes all occurrences of the string name from the environment.	There is no library provision for completely removing  the
       current environment.  It is suggested that the following code be used to do so.
       static char     *envinit[1];
       extern char     **environ;
       environ = envinit;
       All of these routines permit, but do not require, a trailing equals sign (=) on name or a leading equals sign on value.

See Also
	csh(1), sh(1), execve(2), putenv(3), environ(7)

																	 getenv(3)
All times are GMT -4. The time now is 06:45 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy