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 のみ |