要撰寫一個可以跨平台的程式(無論是要重新編譯或基於虛擬機器即時執行),與環境相關的資訊如何設定與取得是必須解決的,例如使用者家(home)路徑、暫存路徑、主機資訊等,這些相關資訊,可以使用GLib的 Miscellaneous Utility Functions 中所提供的函式來取得。
以下的範例程式示範了幾個環境資訊的取得,以及環境變數的取得與設定:
- environment_info_demo.c
#include <glib.h>
int main(int argc, char *argv[]) {
    printf("Host name\t: %s\n", g_get_host_name());
        // 取得使用者真實姓名
	printf("Real name\t: %s\n", g_get_real_name());
        // 取得使用者帳號名稱
	printf("User name\t: %s\n", g_get_user_name());
        // 取得目前所在路徑
	printf("Current dir\t: %s\n", g_get_current_dir());
        // 取得使用者家目錄
	printf("Home dir\t: %s\n", g_get_home_dir());
        // 取得暫存目錄
	printf("Temp dir\t: %s\n", g_get_tmp_dir());
	// 取得PATH環境變數
	printf("PATH\t\t: %s\n", g_getenv("PATH"));
        // 設定CLASSPATH環境變數,FALSE表示若已設定則不覆寫
	g_setenv("CLASSPATH", "D:\\Temp", FALSE);
        // 取得CLASSPATH環境變數
	printf("CLASSPATH\t: %s\n", g_getenv("CLASSPATH"));
        // 取消CLASSPATH環境變數
	g_unsetenv("CLASSPATH");
	printf("CLASSPATH\t: %s\n", g_getenv("CLASSPATH"));
	
    return 0;
}一個執行結果如下所示:
Host name       : CATERPILLAR-PC
Real name : caterpillar
User name : caterpillar
Current dir : D:\Temp
Home dir : C:\Users\caterpillar
Temp dir : C:\Users\CATERP~1\AppData\Local\Temp
PATH : C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Pro
gram Files\ASUS Security Center\ASUS Security Protect Manager\bin;C:\Program Fil
es\Java\jdk1.6.0_07\bin;C:\Winware\MinGW\bin;C:\Winware\Qt\4.3.3\bin;C:\Winware\
Gtk\bin
CLASSPATH : D:\Temp
CLASSPATH : (null)
            
            
      Real name : caterpillar
User name : caterpillar
Current dir : D:\Temp
Home dir : C:\Users\caterpillar
Temp dir : C:\Users\CATERP~1\AppData\Local\Temp
PATH : C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Pro
gram Files\ASUS Security Center\ASUS Security Protect Manager\bin;C:\Program Fil
es\Java\jdk1.6.0_07\bin;C:\Winware\MinGW\bin;C:\Winware\Qt\4.3.3\bin;C:\Winware\
Gtk\bin
CLASSPATH : D:\Temp
CLASSPATH : (null)

