dB'*_*dB' 7 c c++ macos terminal environment-variables
我知道在用c ++编程时我可以用getenv
.访问各个环境变量.
我也知道,在os x终端中,我可以使用列出所有当前环境变量env
.
我有兴趣获取可运行的c ++程序可用的环境变量的完整列表.是否有列出它们的ac/c ++函数?换句话说,有没有办法env
从我的c ++代码调用?
Sha*_*our 13
您可以使用非可移植的envp参数main
:
int main(int argc,char* argv[], char** envp)
Run Code Online (Sandbox Code Playgroud)
作为一个奖励显然OSX
你有苹果,它为您提供其他操作系统提供的信息:
int main(int argc, char **argv, char **envp, char **apple)
Run Code Online (Sandbox Code Playgroud)
但它用于什么?好吧,Apple可以使用apple vector将任何"隐藏"参数传递给任何程序.他们确实也使用它.目前,apple [0]包含在磁盘上找到执行二进制文件的路径.你说的是什么?apple [0]与argv [0]有什么不同?不同之处在于,当调用execve(2)时,argv [0]可以设置为任意值.例如,shell通常通过启动登录shell来区分登录shell和常规shell,其中argv [0]中的第一个字符是 -
ick*_*fay 12
使用environ
全局变量.它是一个以null结尾的指针,指向格式中的字符串数组name=value
.这是一个微型克隆env
:
#include <stdlib.h>
#include <stdio.h>
extern char **environ;
int main(int argc, char **argv) {
for(char **current = environ; *current; current++) {
puts(*current);
}
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5385 次 |
最近记录: |