获取环境变量的两种方式:getenv()和environ
什么是环境变量?
大家可以查看这篇文章认识环境变量:通俗易懂linux环境变量-CSDN博客
实操如何在编写代码时获取环境变量?
示例代码如下:
#include <stdio.h>
#include <stdlib.h>extern char **environ; // 声明环境变量数组int main() {// 方法1:使用getenv函数获取特定环境变量const char *path = getenv("PATH");if (path != NULL) {printf("PATH: %s\n", path);}// 方法2:遍历所有环境变量printf("\n所有环境变量:\n");for (char **env = environ; *env != NULL; ++env) {printf("%s\n", *env);}return 0;
}
代码输入如下:
getenv()介绍
函数原型:
#include <stdlib.h>
char *getenv(const char *name);
该函数会返回一个指向环境变量 name
值的指针,若环境变量不存在,则返回 NULL
。
environ
介绍
environ类型如下:
char **environ;
environ
是一个全局变量,用于访问当前进程的环境变量。- environ指向一个指针,这个指针指向一个字符数组。这个数组里面的每个元素就是该进程的一个环境变量
下列代码演示了如何利用environ这个全局指针变量,来获取指定的环境变量,大家应该很容易看懂:
#include <stdio.h>
#include <unistd.h>int main() {char **env = environ;while (*env!= NULL) {if (strncmp(*env, "PATH=", 5) == 0) {printf("PATH environment variable: %s\n", *env + 5);break;}env++;}return 0;
}