我已经了解到char **envp
是main
函数的第三个参数,通过以下代码的帮助,我能够查看它实际包含的内容。
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;
}
我的问题是:程序员在什么情况下需要使用这个参数?我已经找到了很多关于这个参数的解释,但没有一个能告诉我它通常在哪里使用。试图理解这可能在哪些实际情况下使用。
getenv()
函数可以帮助你找到已知环境变量的值,但它无法帮助你找到未知名称的环境变量的值。通过main()
函数的参数envp
和全局变量environ
,你才能够找到所有的环境变量。因此,单独使用getenv()
函数并不能替代envp
参数。 - Jonathan Lefflermain()
函数应该返回什么?密切相关,但略有不同的是作为main()
函数第三个参数的char *envp[]
是否可移植?也很有趣。 - Jonathan Leffler