Linuxc高級編程之進程1

1.打印當前所有環境變量的值;
2.添加新的環境變量NEWENV=first;
3.修改環境變量NEWENV的值爲second;
4.打印環境變量NEWENV的值。

源代碼:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
extern char **environ;
int main(int argc,char **argv)
{
 char **env = environ;
 while (*env)
 {
  printf("%s\n",*env);
  env++;
 }
 printf("\n\n\n添加新的環境變量");
 putenv("NEWENV=firts");
 printf("NEWENV=%s\n",getenv("NEWENV"));
 setenv("NEWENV","second",1);
 printf("修改後的NEWENV=%s\n",getenv("NEWENV"));
return 0;
}

所用函數:
1.getenv
頭文件
#include<stdlib.h>
函數原型
char * getenv(const char *name);
函數說明
 getenv()用來取得參數name環境變量的內容。參數name爲環境變量的名稱,如果該變量存在則會返回指向該內容的指針。環境變量的格式爲name=value。
返回值
執行成功則返回指向該內容的指針,找不到符合的環境變量名稱則返回NULL。

2.putenv
頭文件
#include<stdlib.h>
定義函數
int putenv(const char * string);
函數說明 
putenv函數將形式爲name=value的字符串,放入環境表中;
若name已經存在,則先刪除其原來的定義。
返回值
執行成功則返回0,有錯誤發生則返回-1。

3.設置環境變量setenv
setenv函數原型:
int setenv(const char* name,
             const char* value,
             int rewrite);
setenv將環境變量name的值設置爲value。
若name已經存在
rewrite != 0,該環境變量原已有內容會被改爲參數value所指的變量內容。
rewrite == 0,且該環境變量已有內容,則參數value會被忽略。
返回值
執行成功則返回0,有錯誤發生時返回-1。

4.刪除環境變量
unsetenv函數用於刪除某個環境變量
函數原型
int unsetenv(const char* name);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章