c - 在 Windows 上可以使用环境吗?
问题描述
在主要的 Windows C 编译器中变量(从 POSIX 开始)是否environ
可用(至少用于阅读)?
我知道这execve
在 Windows 上可用:https://en.wikipedia.org/wiki/Exec_(system_call)
但我不确定是否environ
也可用。
解决方案
编辑:我错了;看起来 MSVC 运行时库确实包含对environ
(尽管已弃用)的支持。如果有人对替代方法感兴趣,我将在下面留下我之前的答案。
我不知道,但是,如果您想在 Windows 上访问环境变量,您有一些选择:
声明
main
或wmain
带有以下签名:int (w)main(int argc, char/wchar_t *argv[], char/wchar_t *envp[])
这在 C 标准中定义为指向环境块的指针(如果适用):
§ J.5.1:
在托管环境中,主函数接收第三个参数 char *envp[],它指向一个以空结尾的指向 char 的指针数组,每个指针都指向一个字符串,该字符串提供有关此执行的环境的信息程序(5.1.2.2.1)。
使用 Windows API 函数
GetEnvironmentVariable(A|W)
获取单个环境变量,或GetEnvironmentStrings
获取整个环境数组。标准 C 函数getenv
。
推荐阅读
- python - flask_login.login_user 在将用户对象传递给它时给出错误
- swift - Xcode 新的“运行脚本阶段” - 如何处理输出文件?
- c++ - 如何将库添加到 clion?
- python - 扩展对象的一部分
- regex - Ansible:findall 正则表达式中变量的正确语法是什么
- prometheus - 使用通配符在 Grafana 上显示多个系列
- laravel - Laravel Livewire 仅在第二次提交/按钮按下后才上传文件
- python - 在函数内多处理 Python 中的 for 循环
- html - 弹性容器中动态项目的间距
- javascript - React Native Swiper 自定义