getenv() には、ヘッダー ファイルに含めることができる C++ 実装があります。したがって、名前空間 std のメンバーです。ただし、getenv() 関数は、std::getenv() がなくてもコード内で正しく解決できます。つまり、フォロー プログラムをエラーや警告なしでコンパイルして実行できます。では、名前空間 std の名前メンバーとしての getenv() が std:: なしで解決できるのはなぜですか? 私の OS とコンパイラは、それぞれ Ubuntu 12.04 i386 と g++ 4.8.1 です。
#include <cstdlib>
#include <iostream>
int main()
{
char * path_env;
path_env = getenv("PATH"); //without a name resolve operation std::getenv()
std::cout << path_env << std::endl;
return 0;
}