描述
C 库函数 char *getenv(const char *name) 搜索 name 所指向的环境字符串,并返回相关的值给字符串。
声明
下面是 getenv() 函数的声明。
char *getenv(const char *name)
参数
name – 包含被请求变量名称的 C 字符串。
返回值
该函数返回一个以 null 结尾的字符串,该字符串为被请求环境变量的值。如果该环境变量不存在,则返回 NULL。
实例
下面的实例演示了 getenv() 函数的用法。
#include <stdio.h>
#include <stdlib.h>
int main ()
{
printf("PATH : %s\n", getenv("PATH"));
printf("HOME : %s\n", getenv("HOME"));
printf("ROOT : %s\n", getenv("ROOT"));
return(0);
}
然我们在ubuntu16.04下编译运行一下:可以看到,打印出了我们系统对应的环境变量的值
[yg@ubuntu ~/arnold_test/20211015_test_c_functions]5$ gcc test.c
[root@ubuntu /home/yg/arnold_test/20211015_test_c_functions]1# ./a.out
PATH : /home/yg/rv/sdk/rv1.8/rv1126_rv1109/buildroot/output/rockchip_rv1126_rv1109/host/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
我在VS上测试(VS要使用_dupenv_s做替代)
#include <stdio.h>
#include <stdlib.h>
int main()
{
char* path;
char* home;
char* root;
size_t sz = 0;
_dupenv_s(&path, &sz, "PATH");
_dupenv_s(&home, &sz, "HOME");
_dupenv_s(&root, &sz, "ROOT");
printf("%s\n", path);
printf("%s\n", home);
printf("%s\n", root);
return(0);
}
运行结果:(windows上没有HOME和ROOT,只有PATH)
C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;E:\prj\web\node-v14.17.6-win-x64;E:\prj\web\node-v14.17.6-win-x64\node-global;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\Program Files\Git\cmd;D:\rv\platform-tools;D:\Program Files (x86)\IDM Computer Solutions\UltraEdit;D:\Program Files\OpenCV_4.5.4\opencv\build\x64\vc15\bin;D:\Program Files\OpenCV_4.5.4\opencv\build\bin;C:\Users\Arnold\AppData\Local\Programs\Python\Python38\Scripts\;C:\Users\Arnold\AppData\Local\Programs\Python\Python38\;C:\Users\Arnold\AppData\Local\Microsoft\WindowsApps;D:\Program Files\JetBrains\PyCharm Community Edition 2021.2.2\bin;C:\Users\Arnold\AppData\Roaming\npm;D:\Users\Arnold\AppData\Local\Programs\Microsoft VS Code\bin;d:\Program Files\JetBrains\CLion 2021.2.3\bin
(null)
(null)