访问环境变量在C

我想要访问我在写的C程序中的$ HOME环境变量。如果我在C编写代码,我只是使用getenv()函数,但我想知道是否有一个更好的方法来做。这里是我到目前为止的代码:

std::string get_env_var( std::string const & key ) {                                 
    char * val;                                                                        
    val = getenv( key.c_str() );                                                       
    std::string retval = "";                                                           
    if (val != NULL) {                                                                 
        retval = val;                                                                    
    }                                                                                  
    return retval;                                                                        
}           

我应该使用getenv()来访问C中的环境变量吗?有没有任何问题,我可能会遇到,我可以避免与一点点知识?

在C中使用getenv()没有什么问题。它由stdlib.h定义,或者如果您喜欢标准库实现,则可以包括cstdlib并通过std ::命名空间(即std :: getenv())访问函数。这绝对没有错。事实上,如果您担心可移植性,则优选这两个版本中的任一个。

如果你不关心可移植性,并且你使用托管C,你可以使用.NET等同 – System::Environment::GetEnvironmentVariable().如果你想要非.NET等效的Windows,你可以简单地使用GetEnvironmentVariable() Win32函数。

翻译自:https://stackoverflow.com/questions/631664/accessing-environment-variables-in-c

转载注明原文:访问环境变量在C