tail head cat sleep
QR code linking to this page

manページ  — GETENV

名称

getenv, putenv, setenv, unsetenv – 環境変数関数

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#include <stdlib.h>

char *
getenv(const char *name);

int
setenv(const char *name, const char *value, int overwrite);

int
putenv(const char *string);

void
unsetenv(const char *name);

解説

これらの関数は、環境変数を設定もしくは削除し、またホストの environment list からそれらを取り出します。 異なる慣習の環境との互換性のため、与えられた引数 name および value はそれぞれ、等価記号 "amp;=" によって後に付加することも、前に付加することもできます。

getenv() 関数は、環境変数 name の現在の値を取得します。 変数 name が現在の環境にない場合は、null ポインタが返ります。

setenv() 関数は、環境変数 name を現在の環境リストに挿入または再設定します。 変数 name がリストにない場合は、与えられた value に設定されて挿入されます。 変数が存在する場合は引数 overwrite が検査され、 overwrite が 0 ならば変数 name は再設定されません。 その他の場合は、与えられた値に再設定されます。

putenv() 関数は、``name=value'' の形で引数をとります。 これは次と等価です。

setenv(name, value, 1);

unsetenv() 関数は、 name で示される変数名のインスタンスを、リストからすべて削除します。

戻り値

The setenvand putenv functions return the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

[ENOMEM]
  環境にメモリを割り振ることができなかったので、関数 setenv() または putenv() は失敗しました。

関連項目

csh(1), sh(1), execve(2), environ(7)

規格

getenv() 関数は、 ISO/IEC 9899:1990 ("ISO C90") に適合しています。

バグ

異なる大きさの value を同じ name に設定する、連続した setenv()putenv() の呼び出しは、メモリリークを引き起こします。 FreeBSD のこれらの関数のセマンティクス (つまり value の内容はコピーされ、その古い値はいつまでもアクセス可能のまま残される) によって、このバグは回避不能です。 このバグを修正するために、将来のバージョンでは、 このセマンティクスの保証の一つ、もしくは両方を削除するかも知れません。

歴史

関数 setenv() および unsetenv() は、 AT&T v7 ではじめて登場しました。 putenv() 関数は、 BSD 4.3 Reno ではじめて登場しました。

GETENV (3) December 11, 1993

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

UNIX has been evolving feverishly for close to 30 years, sort of like bacteria in a cesspool — only not as attractive
— John Levine, "Unix for Dummies"