トップ 一覧 ping 検索 ヘルプ RSS ログイン

C 環境変数の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!C 環境変数

C program では、putenv関数、getenv関数で環境変数にaccessできる。
 #include <stdlib.h>
 char *getenv(const char *name);
 int putenv(const char *string);
*環境はprogram localであり、変更はprogram 外部へは反映されない。


 #include <string.h>
 int main(int argc, char *argv[])
 {
   if (argc != 3) {
     fprintf(stderr,"usage: envname value.\n");
     exit(1);
   }
   
   char *var, *value;
   var = argv[1];
   value = getenv(var);
   if (value) {
     printf("Variable %s has value %s\n", var, value);
   } else {
     printf("Variable %s has no value\n", var);
   }
 
   char *string;
   value = argv[2];
   string = malloc(strlen(var)+strlen(value)+2);
   if (!string) {
     fprintf(stderr, "out of memory\n");
   }
   strcpy(string, var);
   strcat(string, "=");
   strcat(string, value);
   printf("Calling putenv with: %s\n", string);
   if(putenv(string) != 0) {
     fprintf(stderr, "putenv failed\n");
     free(string);
     exit(1);
   }
   value = getenv(var);
   if (value) {
     printf("New value of %s is %s\n" ,var, value);
   } else {
     printf("New value of %s is null??\n", var);
   }
   exit(0);
 }


----
この本からの覚書。
{{amazon 4797327014}}