Namespaces
Variants

std::getenv

ja.cppreference.net より
 
 
ユーティリティライブラリ
言語サポート
型サポート (基本型、RTTI)
ライブラリ機能テストマクロ (C++20)
プログラムユーティリティ
可変長引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)(C++20)(C++20)    
(C++20)
swap と 型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
共通ボキャブラリ型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
ヘッダ <cstdlib>
char* getenv( const char* env_var );

で定義ホスト環境(OS)が提供する環境リストenv_varを検索し、

が指すC文字列に一致する文字列を探し、一致した環境リストメンバに関連付けられたC文字列へのポインタを返します。 getenvこの関数はスレッドセーフである必要はありません。別のsetenv()の呼び出し、およびPOSIX関数unsetenv()、putenv()、

の呼び出しは、以前の呼び出しによって返されたポインタを無効にしたり、以前の呼び出しから得られた文字列を変更する可能性があります。

(C++11まで)setenv()この関数は、他の関数がホスト環境を変更しない限り、スレッドセーフです(複数のスレッドから呼び出してもデータ競合は発生しません)。特に、POSIX関数unsetenv()、putenv()、

は、同期なしで呼び出された場合、データ競合を引き起こします。

(C++11以降)getenvが返す文字列を変更すると、未定義の動作を引き起こします。

パラメータ

env_var - 検索対象の環境変数名を特定するnull終端文字列

戻り値

環境変数の値を識別する文字列、またはそのような変数が見つからない場合はヌルポインタ。

注記

POSIXシステムでは、 環境変数 はグローバル変数 environ を通じてアクセス可能であり、これは extern char ** environ ; として <unistd.h> で宣言されています。また、 main関数 のオプションの第三引数 envp を通じてもアクセス可能です。

例

#include <cstdlib>
#include <iostream>
int main()
{
    if (const char* env_p = std::getenv("PATH"))
        std::cout << "Your PATH is: " << env_p << '\n';
}

出力例:

Your PATH is: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

関連項目

日本語訳:
翻訳内容: - "C documentation" → "Cドキュメント" - "getenv" はC++用語のため翻訳せず保持 - HTMLタグ、属性、構造は完全に保持 - "for" は文脈上、英語のままが適切と判断