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);

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