首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C/C++ 環境變數完整指南:建立、讀取、寬字元與實戰應用

     編輯:關於C++

環境變數由「變數名=值」組成(如 PATH=C:\WINDOWS),是控制程式行為而不需重編譯的強大機制。

建立環境變數

  • DOS/Windows:SET VERSION=1.1.3
  • Unix/Linux:VERSION=1.1.3(無需 SET)

讀取環境變數:getenv()

ANSI C 標準函數,宣告於 <stdlib.h>:

char *getenv(const char *name);
// 成功回傳值指標,失敗回傳 NULL

範例:

#include <stdlib.h>
#include <stdio.h>
int main() {
    char *descr = getenv("PATH");
    if (descr) printf("PATH = %s", descr);
    else printf("未定義");
}

設定環境變數:putenv()

非 ANSI 標準,但 Windows/Unix 皆支援(<stdlib.h>):

int putenv(const char *var); // 格式 "VAR=VAL"
// 成功回傳 0,失敗 -1
// 變數已存在則覆蓋;若不想覆蓋,先用 getenv() 檢查

範例:

int stat = putenv("TEMP=C:\\TEMP"); // 雙反斜線跳脫
if (!stat) printf("設定失敗");

寬字元版本(Win32)

wchar_t *_wgetenv(const wchar_t *name);
int _wputenv(const wchar_t *var); // 適用 NT/Win2000+

實戰應用:除錯開關

透過環境變數控制除錯輸出,客戶端無需重編譯即可啟用:

void func();
#include <stdlib.h>
#include <stdio.h>
int main() {
    bool debug = false;
    if (getenv("DBG")) debug = true; // 定義 DBG 即啟用
    if (debug) printf("calling func\n");
    func();
    if (debug) printf("returned from func\n");
}

執行前在命令列 SET DBG=1 即可看到除錯訊息。這在無法重建部署的現場除錯極為實用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved