std::getenv
提供: cppreference.com
ヘッダ <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
を通してもアクセス可能です。
[編集] 例
Run this code
#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
[編集] 関連項目
getenv の C言語リファレンス
|