putenv、_wputenv
stdlib.h:インデックス への移動
ヘッダーファイル
stdlib.h
カテゴリ
プロセス制御ルーチン
プロトタイプ
int putenv(const char *name);
int _wputenv(const wchar_t *name);
説明
現在の環境に文字列を追加します。
putenv は,文字列名を受け取り,それを現在のプロセスの環境に追加します。次に例を示します。
putenv(“PATH=C:\\BC”);
また,putenv を使って既存の名前を変更することもできます。name は,大文字でも小文字でもかまいません。name に等号(=)を入れてはなりません。「=」記号の右側に空の文字列を指定すると,変数に空の値を設定できます。
putenv は,現在のプログラムの _environment を変更するためにのみ使用できます。プログラムが終了すると,元の _environment が復元されます。現在のプロセスの _environment は,putenv によって加えられた変更も含めて,子プロセスに渡されます。
putenv に提供する文字列は,静的またはグローバルでなければなりません。putenv にローカルまたは動的な文字列を提供し,その文字列メモリが解放された後で文字列が使用されると,予期しない結果になります。
戻り値
putenv は,成功した場合は 0,失敗した場合は -1 を返します。
例
#include <stdio.h> #include <stdlib.h> #include <alloc.h> #include <string.h> int main(void) { char *path, *ptr; int i = 0; /* 現在の PATH 環境を取得します */ ptr = getenv("PATH"); /* 新しい PATH を設定します */ path = (char *) malloc(strlen(ptr)+15); strcpy(path,"PATH="); strcat(path,ptr); strcat(path,";c:\\temp"); /* 現在の PATH を置き換え,最新の環境を表示します */ putenv(path); while (_environ[i]) printf("%s\n",_environ[i++]); return 0; }
移植性
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
putenv |
+ |
|||
_wputenv |
NT のみ |