Sebastian Redl wrote:
Aaron Griffin wrote:
std::string get_env(std::string const& name) { char* var = getenv(name.c_str()); //getenv can return NULL, std::string(NULL) throws if(var) return var; else return ""; }
An empty environment variable is not exactly the same as a non-existent one. Perhaps like this: boost::optionalstd::string get_env(std::string const &name) { char *var = getenv(name.c_str()); if(var) return var; else return boost::nothing; }
Here's some GPL-ed code to set and get environment variables that works on both *nix and Windows: http://www.lyx.org/cgi-bin/viewcvs.cgi/lyx-devel/src/support/environment.C?rev=HEAD&content-type=text/vnd.viewcvs-markup Equivalent url: http://tinyurl.co.uk/o5jo Of course, as Sebastian points out, boost::optional would be more elegant/correct for the getenv wrapper. HTH, Angus