Mat*_*ner 28
看看environ全局变量.
extern char **environ;
Run Code Online (Sandbox Code Playgroud)
它可能被定义unistd.h(看看environ (5)上面的手册页).
这是我写的一个小代码演示:
#include <stdio.h>
extern char **environ;
int main()
{
for (char **env = environ; *env; ++env)
printf("%s\n", *env);
}
Run Code Online (Sandbox Code Playgroud)
以下是如何使用它:
matt@stanley:~/Desktop$ make enumenv CFLAGS=-std=c99
cc -std=c99 enumenv.c -o enumenv
matt@stanley:~/Desktop$ ./enumenv
ORBIT_SOCKETDIR=/tmp/orbit-matt
SSH_AGENT_PID=1474
TERM=xterm
SHELL=/bin/bash
... (so forth)
Run Code Online (Sandbox Code Playgroud)
环境信息可以作为额外参数传递给main.我不知道它是否合规,但它肯定有效(在Ubuntu上测试).只需定义额外参数及其由NULL指针终止的char指针数组.以下将打印出该批次.
#include <stdio>
int main(int argc, char *argv[], char *envp[])
{
int index = 0;
while (envp[index])
printf("%s\n", envp[index++];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15632 次 |
| 最近记录: |