Man page - putenv(3)

Packages contains this manual

Available languages:

en fr ja ru ro de

Manual

PUTENV

名 前
書 式
説 明
返 り 値
エ ラ ー
属 性
準 拠
注 意
関 連 項 目
こ の 文 書 に つ い て

名 前

putenv - 環 境 変 数 の 変 更 ま た は 追 加

書 式

#include <stdlib.h>

int putenv(char * string );

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 ( feature_test_macros (7) 参 照 ):

putenv (): _XOPEN_SOURCE
|| /* Glibc since 2.19: */ _DEFAULT_SOURCE
|| /* Glibc versions <= 2.19: */ _SVID_SOURCE

説 明

putenv () 関 数 は 、 環 境 変 数 の 追 加 ま た は 値 の 変 更 を 行 う 。 引 数 string name = value と い う 形 式 を 取 る 。 name が 環 境 に 存 在 し な い 場 合 は string が 環 境 に 追 加 さ れ る 。 name が 環 境 に 存 在 す る 場 合 は name の 値 は value に 変 更 さ れ る 。 string が 指 し て い る 文 字 列 は 環 境 の 一 部 と な る の で 、 文 字 列 を 変 更 す る と 環 境 も 変 更 さ れ る 。

返 り 値

putenv () 関 数 は 、 成 功 す る と 0 を 返 し 、 エ ラ ー の 場 合 は 0 以 外 の 値 を 返 す 。 エ ラ ー が 発 生 し た 場 合 、 errno に 原 因 を 示 す 値 が 設 定 さ れ る 。

エ ラ ー

ENOMEM

新 し い 環 境 を 割 り 当 て る の に 十 分 な 空 き が な い 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-22353-1.png

準 拠

POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.

注 意

putenv () は リ エ ン ト ラ ン ト で あ る こ と を 求 め ら れ て い な い 。 glibc 2.0 で は リ エ ン ト ラ ン ト で は な い 。 glibc 2.1 で は リ エ ン ト ラ ン ト で あ る 。

バ ー ジ ョ ン 2.1.2 以 降 で は 、 glibc の 実 装 は SUSv2 に 準 拠 し て い る 。 putenv () で 与 え ら れ た ポ イ ン タ ー string が 使 わ れ る 。 こ の 文 字 列 は 環 境 の 一 部 と な り 、 後 で 変 更 す る と 環 境 も 変 わ る 。 (従 っ て 、 putenv () を 自 動 変 数 を 引 数 と し て 呼 び 出 し 、 string が 環 境 の 一 部 の ま ま で 呼 び 出 し た 関 数 か ら return す る と エ ラ ー に な る ) し か し 、 glibc バ ー ジ ョ ン 2.0 か ら 2.1.1 ま で で は 違 っ て お り 、 文 字 列 の コ ピ ー が 使 わ れ る 。 こ れ は メ モ リ ー リ ー ク を 引 き 起 こ す だ け で な く 、 SUSv2 に も 違 反 し て い る 。

4.4BSD バ ー ジ ョ ン で は 、 glibc 2.0 と 同 様 に コ ピ ー を 使 う 。

SUSv2 で は プ ロ ト タ イ プ か ら const が 取 り 除 か れ て お り 、 glibc 2.1.3 も そ の よ う に な っ て い る 。

The GNU C library implementation provides a nonstandard extension. If string does not include an equal sign:

putenv("NAME");

then the named variable is removed from the caller’s environment.

関 連 項 目

clearenv (3), getenv (3), setenv (3), unsetenv (3), environ (7)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man-pages プ ロ ジ ェ ク ト の リ リ ー ス 5.10 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は https://www.kernel.org/doc/man-pages/ に 書 か れ て い る 。