直接上代码:
int main(int argc, char *argv[], char *env[])
{
LogTrace("start");
int index = 0;
while(env[index] != NULL)
{
printf("env[%d]: %s\n", index, env[index]);
++index;
}
LogTrace("end");
return 0;
}
int main(int argc, char *argv[], char *env[]):看名字也应该看出第三个参数传递的是环境变量。
运行结果如下:
./test
1386833991.863759;PID:56288.0;file:test.cc[20],FUN:main; start
env[0]: HOSTNAME=Idc
env[1]: TERM=linux
env[2]: SHELL=/bin/bash
env[3]: HISTSIZE=1000
env[4]: SSH_CLIENT=192.168.18.215 23648 32200
env[5]: QTDIR=/usr/lib64/qt-3.3
env[6]: QTINC=/usr/lib64/qt-3.3/include
env[7]: SSH_TTY=/dev/pts/3
env里面每个字符串都是key=value的形式。
注意一点:evn可以用null判断是否是最后一个了,但是argv不能用null判定,已经有argc了;有次陷入此陷阱,好坑爹!