main(int argc, char **argv, char **envp)
我們可以在shell裡設環境變數,而這個值是每個由這個shell fork出的程式,
經由envp都看得到的。這個argv, envp指的都在virtual memory的下面stack
往上長的開始處。請看拙作''用Open Source tools開發軟體''。
所以shell也不過是一個"User space的C program",環境變數藏在C image user
space最下面,也可以從getenv這個library function call拿到。
所以一般光設變數,沒有設環境變數沒有辦法把值告訴其它的程式。
這邊要注意的是原本的Bourne shell的export沒有支援
$ export var=value
的寫法,所以看到一些shell scripts為了portable起見都用
$ var=value
$ export var