5.25.2010

[C/C++]如何取得環境參數 (How to get the environment parameters)??

這一篇文章要介紹的是一個比較不常看到的一個參數─環境參數

一般而言,我們在C語言中最常見到的命令列參數 (Command Line Arguments),不外乎就是argcargv,前者指的是參數的數量,後者指的是每個參數的內容。

以上兩者,算是比較常見的;其實還有第三者─環境參數 (envp)。以下,寫一個非常簡單地範例來介紹envp的用法:



假如這支程式,是在Windows的環境下執行,我們會看到如下的結果:



argc和argv的部份相信應該都不難理解;那麼envp[0]envp[29]這30組所謂環境參數的字串到底是從那來的??

在Windows下的命令提示字元,輸入help可以查詢到所有可用的指令:



就可看到一個關於環境參數的指令─SET 顯示、設定或移除 Windows 環境變數。如下圖:



我們輸入set就可以看到所有在Windows下的環境變數了;這些變數就是在執行程式時,envp[0]到envp[29]的字串內容:



如果想知道set的用法,像如何新增或修改參數,請輸入set /? (如下圖),Windows下會有詳盡的說明:



如果是UNIX like system下則是輸入env,可以得到一樣的結果:



假如我們在程式設計中,需要用到環境參數的話,就可以直接利用第三個參數─envp來取得。

沒有留言:

張貼留言