| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

C 環境変数

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

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);
}



この本からの覚書。