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 - 標識要查找的環境變量名的空終止字符串

[編輯] 返回值

標識環境變量值的字符串,或若找不到這個變量則為空指針。

[編輯] 註解

POSIX 系統上,環境變量亦可通過於 <unistd.h> 聲明為 extern char** environ; 的全局變量 environ,及通過可選的 main 函數第三實參 envp 訪問。

[編輯] 示例

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

可能的輸出:

您的 PATH 是: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

[編輯] 參閱

getenv 的 C 文檔