The problem is that users
don't have environment variables, processes
do. What you sees in your environment variables when logged into an interactive shell is the result of that shell running some shell scripts (like .profile, .bashrc, /etc/profile, etc., depending on the shell).
There are a few you could guess at from the contents of the passwd file: home directory, initial shell; but past this it's going to be hard to guess what the environment variable would have been.
If you run your scripts using the shell (after setting $HOME, $USER, etc.) you may be able to get the shell to interpret these files. For instance, under bash you can do this:
system("/bin/bash --login -c $yourScript");
and get the environment variables set.
update: I realize that not everyone has the same shell; you'd want to use getpwuid to get the passwd file setting for login shell and HOME. tilly's suggestion sounds good.
Are you posting in the right place? Check out Where do I post X? to know for sure.
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
Want more info? How to link or
or How to display code and escape characters
are good places to start.