replacing getenv/setenv on Windows - ticket 2636
jhutz at cmu.edu
Thu Sep 21 21:03:19 EDT 2006
On Thursday, September 21, 2006 08:15:43 PM -0400 Jeffrey Altman
<jaltman at mit.edu> wrote:
> UNIX system processes share a single environment. On Windows they do
> as well, but only if you using the SetEnvironmentVariable and
> GetEnvironmentVariable APIs to manipulate it.
No. UNIX processes do _not_ share a single environment. Each process gets
a copy of its parent's environment when it is created; once a process is
created there is no way to affect its environment externally. Unlike the
Windows SetEnvironmentVariable call, setenv() does not affect the
environment of any existing process; it affects only the process which made
the call and any children forked after the call to setenv().
I think what you're trying to say is that an environment change made by an
application which uses the Kerberos library may not be visible to the
library even though they're in the same process. I agree that that is an
issue; however, the alternative is that changes made by other processes
_do_ become visible to the library, and vice versa, and that could be a
problem as well.
More information about the krbdev