[英]Printing all environment value in 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);
}
}
}
现在,如果您需要将变量名作为一个以空字符结尾的字符串,那将更加棘手-因为您可能不应该就地修改环境变量,因此必须将名称复制到另一个数组中。
就像是:
for (char **env = envp; *env != 0; env++)
{
char *thisEnv = *env;
printf("%s\n", strchr(thisEnv, '=')+1);
}
也许?
请注意,这假设您的系统上没有空的环境变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.