名稱空間
變體
操作

std::getenv

來自 cppreference.com
< cpp‎ | utility‎ | program
 
 
 
 
定義於標頭檔案 <cstdlib>
char* getenv( const char* env_var );

搜尋由宿主環境(作業系統)提供的環境變數列表,查詢與env_var指向的C字串匹配的字串,並返回指向與匹配的環境變數列表成員相關聯的C字串的指標。

此函式不要求是執行緒安全的。對getenv的另一次呼叫,以及對POSIX函式setenv()unsetenv()putenv()的呼叫可能會使之前呼叫返回的指標失效,或修改之前呼叫獲得的字串。

(C++11 前)

此函式是執行緒安全的(從多個執行緒呼叫它不會引入資料競爭),只要沒有其他函式修改宿主環境。特別是,如果未同步呼叫POSIX函式setenv()unsetenv()putenv(),則會引入資料競爭。

(C++11 起)

修改getenv返回的字串會導致未定義行為。

目錄

[編輯] 引數

env_var - 以null結尾的字串,標識要查詢的環境變數的名稱

[編輯] 返回值

標識環境變數值的字串,如果未找到該變數則返回空指標。

[編輯] 注意

在POSIX系統上,環境變數也可透過全域性變數environ(在<unistd.h>中宣告為extern char** environ;),以及透過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 文件getenv