getenv_s、wgetenv_s
stdlib.h:インデックス への移動
ヘッダー ファイル
stdlib.h
カテゴリ
環境との通信
プロトタイプ
errno_t getenv_s(size_t * restrict len, char * restrict value, rsize_t maxsize, const char * restrict name);
errno_t wgetenv_s(size_t * restrict len, wchar_t * restrict value, rsize_t maxsize, const wchar_t * restrict name);
説明
getenv_s 関数は、name で指定した環境変数の値にアクセスして、その値を value が指す文字列に格納し、文字列の長さを len に設定するのに使用されます。ただし、値の長さが maxsize 以下の場合にだけです。
この関数に設定されている実行時制約は、name および value が NULL であってはならない、maxsize が 0 でも RSIZE_MAX より大きくてもいけない、です。
環境は、name=string\0 の形式の、一連のエントリで構成されています。
getenv_s は、value が指す文字配列に、指定された変数の値を設定します。 name は、大文字でも小文字でも指定できます。 name に、等号記号(=)を含めてはなりません。 指定された環境変数が存在しない場合、getenv_s は、len が指す整数に 0 を、value[0] に NULL を設定します。
メモ: 環境エントリを、直接変更しないでください。 環境変数の値を変更したい場合は、putenv を使用します。
戻り値
getenv_s は、成功した場合 0 を返し、それ以外の場合 0 以外の値を返します。
例
#include <stdio.h> #include <stdlib.h> #include <alloc.h> #include <string.h> int main(void) { char ptr[80]; char *path; int i = 0; unsigned int len; /* Get the current path environment */ getenv_s(&len, ptr, 80,"PATH"); /* Set up new path */ path = (char *) malloc(len+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("%s\n",_environ[i++]); return 0; }
移植性
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
getenv_s |
+ |
+ |
+ |
+ |