getenv、_wgetenv

提供: RAD Studio
移動先: 案内検索

stdlib.h:インデックス への移動


ヘッダー ファイル

stdlib.h

カテゴリ

プロセス制御ルーチン

プロトタイプ

char *getenv(const char *name);

wchar_t *_wgetenv(const wchar_t *name);

説明

システム環境から環境変数を取得します。

環境は、名前=文字列\0 という形式の一連のエントリで構成されています。

getenv は、指定された変数の値を返します。 名前には、大文字でも小文字でも指定できます。 名前に等号(=)を含めることはできません。 指定した環境変数が存在しない場合、getenv は NULL ポインタを返します。

環境変数を変更するには、putenv、_wputenv を使用してください。

メモ:getenv 関数は、環境変数の内容のコピーではなく、環境変数のポインタを返します。 そのため、次の例のように、取得したポインタを使って変数の内容を変更することが可能です。


この方法で環境変数の内容を変更することはお勧めできません。

 char *p;
 p = getenv("PROCESSOR_ARCHITECTURE");
 puts(p);
 strcpy(p, "F20");
 p = getenv("PROCESSOR_ARCHITECTURE"); // has no effect on p
 puts(p);

出力例:

x86 F20


戻り値

処理が成功すると、名前に関連付けられた値が getenv から返されます。

指定された名前が環境内で定義されていなければ、NULL ポインタが返されます。

 #include <stdio.h>
 #include <stdlib.h>
 #include <alloc.h>
 #include <string.h>
 
 int main(void)
 {
    char *path, *ptr;
    int i = 0;
    /* get the current path environment */
    ptr = getenv("PATH");
    /* set up new path */
    path = (char *) malloc(strlen(ptr)+15);
    strcpy(path,"PATH=");
    strcat(path,ptr);
    strcat(path,";c:\\temp");
    /* replace the current path and display current environment */
    putenv(path);
    while (_environ[i]){
        printf("%s\n",_environ[i++]);
    }
    return 0;
 }

移植性

POSIX Win32 ANSI C ANSI C++

getenv

+

+

+

+

_wgetenv

+


関連項目