我有代码从支架输入中获取环境变量名称并调用库函数getenv()
来获取值和输出。
这是代码。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXLEN 256
int main(void)
{
char *envName;
char *envValue;
char *envEntry;
char *envVar=(char*)malloc(sizeof(char)*MAXLEN);
while(NULL!=(envName=gets(envVar))){
envValue=getenv(envName);
if(envValue){
printf("%s\n",envValue);
envEntry=strtok(envValue,";");
while(envEntry){
printf("%s\n",envEntry);
envEntry=strtok(NULL,";");
}
}else{
printf("not found\n");
}
}
return 0;
}
如果环境变量"path"
包含"a;b;c;d"
. 当它运行时,如果第一次输入字符串“path”,它运行良好,但如果再次输入“path”,它只会得到第一个字符串,如"a"
or "a;b"
。