如何在C程序中使用环境变量

如何在C程序中使用环境变量,c,variables,path,environment,C,Variables,Path,Environment,我需要知道一种在C编程语言中使用环境变量的方法。我如何使用和阅读它们 例如,读取环境变量或获取环境变量的值并将其加载到另一个变量中。使用stdlib.h中的函数。就这样 您可以使用以下功能- char*getenv(const char*name)-返回一个字符串,该字符串是环境变量名称的值 char*secure\u getenv(const char*name) 在此处阅读更多函数-: #包括 #包括 int main(int argc,char*argv[]) { char*my_env_

我需要知道一种在C编程语言中使用环境变量的方法。我如何使用和阅读它们


例如,读取环境变量或获取环境变量的值并将其加载到另一个变量中。

使用
stdlib.h
中的函数。就这样

您可以使用以下功能-

char*getenv(const char*name)
-返回一个字符串,该字符串是环境变量名称的值

char*secure\u getenv(const char*name)

在此处阅读更多函数-

#包括
#包括
int main(int argc,char*argv[])
{
char*my_env_var=getenv(“my_env_var”);
如果(我的环境变量)
printf(“找到的变量:%s”,我的环境变量);
其他的
printf(“未找到Var”);
返回0;
}
我的2美分。 我是一个老的CGIC程序员。 运行一个env。变量请求,您将遇到麻烦 因为www数据(apache2用户)没有适当的权限。 (上下文:web和cgi执行) 我一直在尝试各种可能性 用popen()然后“grep”我想要的信息。。。 积极和积极的是: df、ps、服务器时间、可用内存 lsb发行版-操作系统说明的d版 CPU ID的cat/proc/cpuinfo 操作系统说明的“lsb_版本-d” 通过www数据用户可以很好地工作。 2美分 斯蒂芬
我投票结束这个问题,因为谷歌的确切标题是:“大约1560000个结果”,现在,这就是其中之一。这里的链接现在断了。一般来说,最好在答案中加入更多的上下文,以防外部链接在发布几年后中断。感谢有用的链接!但是,请您澄清一下(或者提供一个链接到某种澄清的文章)当可执行文件设置了SUID/SGID位时,为什么环境不可信?我尝试过,但gcc不喜欢它:“错误:初始值设定项元素不是常量”ubuntu18上的gcc 7.5.0
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    char* my_env_var = getenv("MY_ENV_VAR");

    if(my_env_var)
        printf("Var found: %s", my_env_var );
    else
        printf("Var not found.");                

    return 0;
}
my 2 cents. I'm an old CGI C programmer. Run a env. variable request, you will run in trouble since www-data (apache2 user) don't have proper permission. (Context : web and cgi execution) I've been experimenting with all possibilities with popen() then "grep" what I want for info... and positive are : df, ps, server time, free memory lsb-release -d for os description cat /proc/cpuinfo for CPU ID "lsb_release -d" for OS description those work fine through www-data user. 2 cents steph