c++ - C++ main() 的第三个环境变量参数有什么用?

标签 c++ environment-variables program-entry-point

我已经明白 char **envpmain 的第三个参数,借助下面的代码,我能够看到它是什么实际上包含。

int main(int argc, char *argv[], char *env[])
{
  int i;
  for (i=0 ; env[i] ; i++)
    std::cout << env[i] << std::endl;
  std::cout << std::endl;
}

我的问题是:为什么(在什么情况下)程序员需要使用它?我找到了很多关于此参数的作用的解释,但没有任何内容可以告诉我该参数通常用于何处。试图了解这可能用于什么样的现实世界情况。

最佳答案

它是一个包含所有环境变量的数组。例如,它可用于获取当前登录用户的用户名或主目录。一种情况是,例如,如果我想在用户的主目录中保存一个配置文件,我需要获取 PATH;

int main(int argc, char* argv[], char* env[]){

std::cout << env[11] << '\n';  //this prints home directory of current user(11th for me was the home directory)

return 0;
}

env 的等价物是 char* getenv (const char* name)更容易使用的功能,例如:

 std::cout << getenv("USER");

打印当前用户的用户名。

关于c++ - C++ main() 的第三个环境变量参数有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19198797/

相关文章:

c++ - 如何在 QSqlTableModel 和 Q_OBJECT 之间不发生冲突的情况下构建我的类?

c++ - 递归函数? [初学者]

c++ - 如何使移动检测到的手和指尖像鼠标一样与 Qt GUI 交互?

ANDROID_HOME 没有设置?

configuration - 使用环境变量的 Logstash 条件输出不起作用

C++考试,谁答对了第一题?

c++ - 在 C 和 C++ 中 main() 应该返回什么?

c++ - initializer_list 和 GCC 4.9.2 与 GCC trunk

python - 管理环境变量

java - 在没有 main 的情况下执行 jar?