描述
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/1015_test_c_functions]5$ gcc test.c [root@ubuntu /home/yg/arnold_test/1015_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
参考文章:C 库函数 - getenv()
我在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 .2.2\bin;C:\Users\Arnold\AppData\Roaming\npm;D:\Users\Arnold\AppData\Local\Programs\Microsoft VS Code\bin;d:\Program Files\JetBrains\CLion .2.3\bin(null)(null)
参考文章:将getenv函数–>_dupenv_s函数
C语言getenv()函数的用法?(获取系统某个环境变量字符串名的值)(windows VS上用_dupenv_s()函数)