C语言getenv()函数的用法?(获取系统某个环境变量字符串名的值)(windows VS上用_dupenv_s()函数)

本文介绍了C语言中获取环境变量的两个函数:getenv在Unix/Linux系统上的使用,以及在Visual Studio环境下需要使用_dupenv_s的替代方法。通过示例展示了如何获取PATH、HOME和ROOT等环境变量的值,并展示了不同操作系统下的运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述

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

参考文章: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 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)

参考文章:将getenv函数–>_dupenv_s函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dontla

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值