Linux—环境变量(day09)
目录 一、使用C程序访问环境变量 二、文件输入重定向 三、管道 四、信号 ? 一、使用C程序访问环境变量 系统提供一个全局变量,extern char **environ; 内部存放结构如下 ? 1、使用全局变量environ打印系统所有环境变量: extern char **environ; int i=0; while(*(environ+i)!=NULL){ printf("%sn",*(environ+i)); i++; } 2、使用main(int argc,char *argv,char *envp[]) #include<stdio.h> int main(int argc,char *argv[],char *envp[]){ int i=0; for(;envp[i]!=NULL;i++){ printf("%sn",envp[i]); } return 0; } ?3、通过函数操作环境变量 getenv(3) #include<stdlib.h> char *getenv(const char *name) 功能: 获取环境变量的值 参数: name:环境变量的名字 返回值: 没有找到匹配的环境变量:NULL 成功:环境变量值的首地址 printf("%sn",getenv(UID)); putenv(3) #include<stdlib.h> int putenv(const char *name) 功能: 改变或增加一个环境变量 参数: string:name=value格式的字符串 返回值: 错误:非0 成功:0 piutenv("name=pycoming")‘ printf("name:%sn",getenv(name));
clearenv(3) #include<stdlib.h> int clearenv(void) 功能: 清除环境变量 参数: void 返回值: 错误:非0 成功:0 例略。 setenv(3) #include<stdlib.h> int setenv(const char *name,const char*value,int overwrite) 功能: 改变或增加一个环境变量 参数: name:环境变量的名字 value:指定改变环境变量的值 overwrite: 0:环境变量的值存在,那么值被改变 非0:环境变量的值存在,不被改变 返回值: 错误:-1,errno被设置 成功:0 ? int unsetenv(const char *name,const char*value,int overwrite) 功能: 改变或增加一个环境变量 参数: name:环境变量的名字 value:指定改变环境变量的值 overwrite: 0:环境变量的值存在,那么值不被改变 非0:环境变量的值存在,被改变 返回值: 错误:-1,errno被设置 成功:0 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |