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

MyMemoWiki

C 環境変数

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

C 環境変数

C program では、putenv関数、getenv関数で環境変数にaccessできる。

  1. #include <stdlib.h>
  2. char *getenv(const char *name);
  3. int putenv(const char *string);
  • 環境はprogram localであり、変更はprogram 外部へは反映されない。
  1. #include <string.h>
  2. int main(int argc, char *argv[])
  3. {
  4. if (argc != 3) {
  5. fprintf(stderr,"usage: envname value.\n");
  6. exit(1);
  7. }
  8. char *var, *value;
  9. var = argv[1];
  10. value = getenv(var);
  11. if (value) {
  12. printf("Variable %s has value %s\n", var, value);
  13. } else {
  14. printf("Variable %s has no value\n", var);
  15. }
  16.  
  17. char *string;
  18. value = argv[2];
  19. string = malloc(strlen(var)+strlen(value)+2);
  20. if (!string) {
  21. fprintf(stderr, "out of memory\n");
  22. }
  23. strcpy(string, var);
  24. strcat(string, "=");
  25. strcat(string, value);
  26. printf("Calling putenv with: %s\n", string);
  27. if(putenv(string) != 0) {
  28. fprintf(stderr, "putenv failed\n");
  29. free(string);
  30. exit(1);
  31. }
  32. value = getenv(var);
  33. if (value) {
  34. printf("New value of %s is %s\n" ,var, value);
  35. } else {
  36. printf("New value of %s is null??\n", var);
  37. }
  38. exit(0);
  39. }



この本からの覚書。