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.

If you sat a monkey down in front of a keyboard, the first thing typed would be a unix command.
— Bill Lye