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

C語言實戰:查看環境變量的多種方法

     編輯:關於C語言

C語言實戰:查看環境變量的多種方法

環境變量是作業系統提供給程序的一組鍵值對參數,程序透過它們獲取運行上下文資訊。常見的如 PATH、SHELL、HOME 等。掌握如何在 C 語言中讀取環境變量,是系統編程的基礎技能之一。

一、Shell 命令行快速查看

在終端中可使用以下命令檢視環境變量:

  • echo $VAR_NAME:查看單一變量值(需知道變量名)。
  • set:顯示當前 Shell 所有變量(含 Shell 內部變量)。
  • env:顯示當前進程的環境變量(範圍比 set 更接近進程實際環境)。
$ echo $SHELL
/bin/bash
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
$ env | head -5
LC_PAPER=zh_CN.UTF-8
TERM=xterm
SHELL=/bin/bash
USER=talk8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

二、C 標準庫函數 getenv()

C 標準庫提供 getenv() 根據名稱獲取環境變量值,原型如下:

#include <stdlib.h>
char *getenv(const char *name);
  • 參數:環境變量名稱字串。
  • 返回值:對應的值字串指標;若不存在或無值則返回 NULL。

範例程式碼:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    const char *key = "SHELL";
    char *value = getenv(key);
    if (value) {
        printf("The value of %s is %s\n", key, value);
    } else {
        printf("No value found for %s\n", key);
    }
    return 0;
}

執行結果與 echo $SHELL 一致:

The value of SHELL is /bin/bash

三、遍歷所有環境變量:environ 全域變量

若需像 env 命令一樣列出所有環境變量,C 語言無現成函數,但可使用外部全域變量 environ。它是一個指向字串指標陣列的指標,陣列以 NULL 結尾。

extern char **environ;  // 需先聲明

int main(void) {
    char **env = environ;
    while (*env != NULL) {
        printf("%s\n", *env);
        env++;
    }
    return 0;
}

關鍵點:

  1. 使用前必須聲明 extern char **environ;。
  2. 將其視為字串指標陣列,最後一個元素為 NULL。
  3. 遍歷方式與普通陣列無異。

執行結果將與 env 命令完全一致。

四、總結對照表

方法適用場景對應 Shell 命令
getenv(name)已知變量名,獲取單一值echo $VAR
environ 遍歷列出所有環境變量env 或 set

完整範例程式碼可至筆者資源區下載。下一回將繼續分享更多 C 語言實戰技巧,敬請期待。

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