linux下的setenv使用

swartz_lubel發表於2015-12-16

今天遇到一個setenv的問題,本來想用gdb去檢視的,可是後來找了半天並木有找到,但是還是有一點收穫的,記錄一下。

獲取環境變數:

 #include <stdlib.h>
 char *getenv(const char *name);


設定環境變數 :setenv和putenv

  #include <stdlib.h>
  int setenv(const char *name, const char *value, int overwrite);
  int unsetenv(const char *name);

#include <stdlib.h>
int putenv(char *string);


下面說明一下一些需要注意的東西:

首先的話,這個設定的環境變數只會對當前程式有效,如果程式退出就沒了。

呼叫system的話,由於system利用fork去建立程式,所以子程式其實也是可以共享這個環境變數的。

會用gdb的人應該知道show environment 可以檢視環境變數,show出來的變數其實是程式執行之前的環境變數。

所以在執行之前設定,然後利用getenv是可以獲取到的,但是一旦程式開始執行,你set的時候就沒效果了


2015年12月16日01:24:24

相關文章