GETENV
Section: C Library Functions (3)
索引
jman
BSD mandoc
索引
名称
getenv
putenv
setenv
unsetenv
- 環境変数関数
索引
ライブラリ
Lb libc
索引
書式
In stdlib.h
Ft char *
Fn getenv const char *name
Ft int
Fn setenv const char *name const char *value int overwrite
Ft int
Fn putenv const char *string
Ft void
Fn unsetenv const char *name
索引
解説
これらの関数は、環境変数を設定もしくは削除し、またホストの
environment list
からそれらを取り出します。
異なる慣習の環境との互換性のため、与えられた引数
name
および
value
はそれぞれ、等価記号
``=
''
によって後に付加することも、前に付加することもできます。
Fn getenv
関数は、環境変数
name
の現在の値を取得します。
変数
name
が現在の環境にない場合は、null ポインタが返ります。
Fn setenv
関数は、環境変数
name
を現在の環境リストに挿入または再設定します。
変数
name
がリストにない場合は、与えられた
value
に設定されて挿入されます。
変数が存在する場合は引数
overwrite
が検査され、
overwrite
が 0 ならば変数
name
は再設定されません。
その他の場合は、与えられた値に再設定されます。
Fn putenv
関数は、``name=value'' の形で引数をとります。
これは次と等価です。
setenv(name, value, 1);
Fn unsetenv
関数は、
Fa name
で示される変数名のインスタンスを、リストからすべて削除します。
索引
戻り値
Rv -std setenv putenv
索引
エラー
- Bq Er ENOMEM
-
環境にメモリを割り振ることができなかったので、関数
Fn setenv
または
Fn putenv
は失敗しました。
索引
関連項目
csh(1),
sh(1),
execve(2),
environ(7)
索引
規格
Fn getenv
関数は、
St -isoC
に適合しています。
索引
バグ
異なる大きさの
value
を同じ
name
に設定する、連続した
Fn setenv
や
Fn putenv
の呼び出しは、メモリリークを引き起こします。
Fx のこれらの関数のセマンティクス
(つまり
value
の内容はコピーされ、その古い値はいつまでもアクセス可能のまま残される)
によって、このバグは回避不能です。
このバグを修正するために、将来のバージョンでは、
このセマンティクスの保証の一つ、もしくは両方を削除するかも知れません。
索引
歴史
関数
Fn setenv
および
Fn unsetenv
は、
AT&T System
v7
ではじめて登場しました。
Fn putenv
関数は、
BSD 4.3 Reno
ではじめて登場しました。
索引
Index
- 名称
-
- ライブラリ
-
- 書式
-
- 解説
-
- 戻り値
-
- エラー
-
- 関連項目
-
- 規格
-
- バグ
-
- 歴史
-
Time: 07:06:52 GMT, January 12, 2009