名前空間
変種
操作

std::getenv

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

汎用ユーティリティ
関係演算子 (C++20で非推奨)
 
 
ヘッダ <cstdlib> で定義
char* getenv( const char* env_var );

ホスト環境(OS)によって提供される「環境リスト」を検索し、env_varが指すC文字列と一致する文字列を探します。一致した環境リストメンバーに関連付けられたC文字列へのポインタを返します。

この関数はスレッドセーフであることが保証されていません。別のgetenvの呼び出し、およびPOSIX関数であるsetenv()unsetenv()putenv()の呼び出しは、以前の呼び出しで返されたポインタを無効にしたり、以前の呼び出しで取得された文字列を変更したりする可能性があります。

(C++11まで)

他の関数がホスト環境を変更しない限り、この関数はスレッドセーフです(複数のスレッドから呼び出してもデータ競合は発生しません)。特に、POSIX関数であるsetenv()unsetenv()putenv()は、同期なしで呼び出された場合にデータ競合を引き起こします。

(C++11以降)

getenvによって返された文字列を変更すると、未定義の動作が発生します。

目次

[編集] パラメータ

env_var - 検索する環境変数の名前を識別する、ヌル終端された文字文字列。

[編集] 戻り値

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

[編集] 注記

POSIXシステムでは、環境変数は、<unistd.h>で宣言されているグローバル変数environextern char** environ;)や、main関数のオプションの3番目の引数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言語のドキュメントgetenvについて)
English 日本語 中文(简体) 中文(繁體)