スタンド入力から環境変数名を取得し、ライブラリ関数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". 実行中に、最初に文字列「パス」を入力するとうまく機能しますが、もう一度「パス」と入力すると、"a"またはのような最初の文字列しか取得されません"a;b"。