在 Linux C 中获得所有环境变量

Linux C中我们可以通过以下两个函数获得指定名称的环境变量:

#include <stdlib.h>
char *getenv(const char *name);
char *secure_getenv(const char *name);

但有时候我们想一次性获得所有环境变量,并依次处理,用来覆盖我们程序中的某些配置信息,这在配置信息较多的情况下比较有用,尤其是当配置信息形成了一个数组时,这样处理,可以简化后续新增配置的工作。

Linux C中我们可以通过 environ全局变量 来获取所有环境变量,environ是一个数组,它的每个元素是一个 char *指针,用来指向某个环境变量,且数组的最后一个指针为 NULL,环境变量的内容为 "name=value"形式。

使用示例如下所示:

#include <stdio.h>

extern char **environ;

int main(void)
{
	char **p = environ;
	while (*p) {
		printf("%s\n", *p);
		// Do something
		++p;
	}

	return 0;
}

代码运行结果如下所示:

$ gcc -o main main.c
$ export MY_ENV_1=123
$ ./main
SHELL=/bin/bash
...
LOGNAME=zhoumin
...
MY_ENV_1=123
...
HOME=/home/zhoumin
...
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值