c - 在 C 中打印所有环境值
问题描述
所以我得到了所有环境变量:
int main(int argc, char **argv, char **envp)
{
for (char **env = envp; *env != 0; env++)
{
char *thisEnv = *env;
printf("%s\n", thisEnv);
}
return 0;
}
如何在 C 中获取所有环境变量值(唯一值)。
我知道getenv
可以用,但是不知道怎么用for
。
解决方案
仅打印值很简单 - 只需找到 的第一个实例=
,然后将指针加一:
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv, char **envp)
{
for (char **env = envp; *env != 0; env++)
{
char *pair = *env;
char *value = strchr(pair, '=');
if (value != NULL) {
printf("%s\n", value + 1);
}
}
}
现在,如果您需要将变量名称作为以空字符结尾的字符串来获取,那就更棘手了——因为您可能不应该就地修改环境变量,因此您必须将名称复制到另一个数组。
推荐阅读
- django - 如何使用唯一字段返回按日期排序的查询集
- angular - 如何使用角度 8 检查所选时间小于当前时间或大于当前时间
- azure-storage - Azure 存储队列 - 重试机制实现
- sql-server - Azure 管道无法连接到 Azure Sql
- jquery - 更改路由时jQuery在vue组件中不起作用
- datatables - 数据表分页省略号 - 我希望能够单击省略号并显示接下来的三个数字序列
- blazor - 有没有 Blazor 时间选择器和颜色选择器?
- java - 尝试将项目添加到数组
- html - 如何在两个图像中将我的 class="active" 转移到最右边和最左边的标志?
- sql - 在 generate_series 中使用函数