UNIX系统下,获取环境变量并分行写入TXT
UNIX系统下 获取某环境变量XXX的值,并写入TXT文档中,若多值则分行写入,怎么做呀~~平时都VC惯了。。。这下给难住咯,求助~~~
[解决办法]
extern char* *environment; 使用之前声明一下, 之后你就可以遍历environment了,它以NULL结尾。
相关API: setenv, putenv,还有遍历env的接口,不列举了,手头没linux了。
[解决办法]
#include <stdlib.h>
char *getenv(const char *name);
[解决办法]
#include <stdlib.h>
char *getenv(const char *name);
[解决办法]
[解决办法]
- C/C++ code
#include <stdio.h>int main(int argc, char **argv, char *env[]){ int i; for( i = 0; env[i]; i++ ) printf("[%s]\n", env[i]);}
[解决办法]
- C/C++ code
#include <stdio.h>#include <unistd.h>#include <stdlib.h>void usage(){ printf("Usage:getenv name\n"); exit(1);}int main(int argc,char**argv){ int n; char *str=NULL; FILE*fp; if(argc<2) { usage(); } if(NULL==(fp=fopen("env.txt","w"))) { printf("Can't open file:env.txt\n"); exit(1); } n=1; while(n<argc) { str=getenv(argv[n]); if(str==NULL) { printf("NO environments:%s\n",argv[n]); } else { fprintf(fp,"%s:%s\n",argv[n],str); } n++; } fclose(fp);}
[解决办法]
- C/C++ code
#include <stdlib.h>#include <stdio.h>#include <unistd.h>extern char **environ;int main(){ char **env=environ; while(*env) { fprintf(stdout,"%s\n",*env); env++; }}