名前空間
変種
操作

std::getenv

提供: cppreference.com
< cpp‎ | utility‎ | program
 
 
 
プログラムサポートユーティリティ
プログラム終了
(C++11)
(C++11)
環境との通信
getenv
シグナル
シグナルの種類
非ローカルジャンプ
 
ヘッダ <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>extern char **environ; として宣言されているグローバル変数 environ および main 関数のオプショナルな第3引数 envp を通してもアクセス可能です。

[編集]

#include <iostream>
#include <cstdlib>
 
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

[編集] 関連項目