linux編程學習筆記(六) 環境變量

原地址:http://blog.csdn.net/a8887396/article/details/9009337


1 使用main的參數


命令行參數argv與環境行arge都是字符串數組
約定:最後一個字符串是NULL/0

  1. #include <stdio.h>  
  2. int main(int argc,char ** argv,char **arge)  
  3. {  
  4.     while(*arge)   
  5.     {  
  6.         printf("%s\n",*arge);  
  7.         arge++;  
  8.     }  
  9.       
  10. }  



2 在c的標準庫裏提供了外部變量

使用外部變量environ
  1. #include <stdio.h>  
  2. int main()  
  3. {     
  4.     extern char **environ; // man environ  
  5.     while(*environ)  
  6.     {  
  7.         printf("%s\n",*environ);  
  8.         environ++;  
  9.     }  
  10. }  



3 修改獲取刪除某個環境變量 

getenv/setenv/unsetenv

獲得一個環境變量
       #include <stdlib.h>
       char *getenv(const char *name);
主要用於程序使用環境變量中的參數


  1. #include <stdlib.h>  
  2. #include <stdio.h>  
  3. int main()  
  4. {  
  5.     char *val = getenv("PATH");  
  6.     printf("PATH : %s\n",val);  
  7. }  



設置環境變量(不影響系統,只能影響本程序,覺得沒太大用)
int setenv(const char *name, const char *value, int overwrite);
如果name在環境變量中存在,且overwrite非0時,設置環境變量纔可以生效
如果name不存在,則設置直接生效。


int unsetenv(const char *name);
刪除環境變量

  1. #include <stdlib.h>  
  2. #include <stdio.h>  
  3. int main()  
  4. {  
  5.     char *val = getenv("PATH");  
  6.     printf("PATH : %s\n",val);  
  7.       
  8.     setenv("PATH","aaabbbccc:aaabbbccc",1);  
  9.     val = getenv("PATH");  
  10.     printf("PATH : %s\n",val);  
  11.   
  12.   
  13.     unsetenv("PATH");  
  14.     val = getenv("PATH");  
  15.     printf("PATH : %s\n",val);  
  16. }  



zhao@ubuntu:~/unix/3$ ./02env 
PATH : /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
PATH : aaabbbccc:aaabbbccc
PATH : (null) //被刪除了
zhao@ubuntu:~/unix/3$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 操作對系統無影響
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章