1、getenv:C语言获取环境变量2、环保变量相关命令3、环境变量的组织方式
**main函数的参数:argc、argv[]****main函数的参数:env[]**
1、
env:查看所有环境变量
2、
echo $PATH :查看PATH下的环境变量
1、getenv:C语言获取环境变量问:为什么运行我们生成的test可执行文件需要./test,但是运行ls等命令就可以直接用呢?
答:不指定路径,系统会在PATH里的路径里找,PATH:辅助系统进行指令查找
PATH=$PATH:/home/xupeng/101/lesson10:将/home/xupeng/101/lesson10添加到环境变量;这样运行就可以不用带./指定当前路径了(这种设置是一次性的,重启失效,想永久,必须更改.bash_profile文件)
(PATH不小心被自己清空后,关机重登就可以,PATH是个变量,他是被系统开启时赋值的)
3 #include "stdlib.h"
4
7 int main() {
8
9 printf("%sn", getenv("PATH"));
10 printf("%sn", getenv("HOME"));
11 return 0;
19 }
MY_ENV="hello env"设置本地变量;export MY_ENV导为全局变量后可以被别的进程获取到
[xupeng@VM-4-13-centos lesson10]$ MY_ENV="hello env" [xupeng@VM-4-13-centos lesson10]$ echo $MY_ENV hello env [xupeng@VM-4-13-centos lesson10]$ export MY_ENV [xupeng@VM-4-13-centos lesson10]$ vim proc.c [xupeng@VM-4-13-centos lesson10]$ make gcc proc.c -o proc [xupeng@VM-4-13-centos lesson10]$ ./proc /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/xupeng/.local/bin:/home/xupeng/bin:/home/xupeng/101/lesson10 /home/xupeng hello env [xupeng@VM-4-13-centos lesson10]$2、环保变量相关命令
env只可以显示环境变量,set可以显示环境变量和本地变量
命令行操作demo:
6 void Usage(char *msg) {
7 printf("Usage : %s -[a|s] x yn", msg);
8 }
9
12 int main(int argc, char *argv[])
13 {
14 if (argc != 4) {
15 Usage(argv[0]);
16 return 1;
17 }
18
19 int x = atoi(argv[2]);
20 int y = atoi(argv[3]);
21
22 if (strcmp(argv[1], "-a") == 0) {
23 printf("%d + %d = %dn", x, y, x+y);
24 } else if(strcmp(argv[1], "-s") == 0) {
25 printf("%d - %d = %dn", x, y, x- y);
26 }
27
28 return 0;
29 }
main函数的参数:env[]
由此可知geten()函数就是通过env[]来获得环境变量的
C代码获取环境变量:
#includeint main(int argc, char *argv[], char *env[]) { int i = 0; for(; env[i]; i++){ printf("%sn", env[i]); } return 0; }
通过environ获取环境变量:
#includeint main(int argc, char *argv[]) { extern char **environ; int i = 0; for(; environ[i]; i++){ printf("%sn", environ[i]); } return 0; }



