Man page - unsetenv(3)

Packages contains this manual

Available languages:

en fr es ja ru ro de

Manual

SETENV

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

名 前

setenv - 環 境 変 数 を 変 更 ま た は 追 加 す る

書 式

#include <stdlib.h>

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

int unsetenv(const char * name );

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

setenv (), unsetenv ():

_POSIX_C_SOURCE >= 200112L
|| /* Glibc versions <= 2.19: */ _BSD_SOURCE

説 明

setenv () 関 数 は 、 name が 存 在 し な い 場 合 環 境 変 数 name に 値 value を 設 定 し 、 環 境 に 追 加 す る 。 name が 環 境 に 存 在 す る 場 合 、 overwrite が 0 以 外 な ら ば そ の 値 を value に 変 更 し 、 overwrite が 0 な ら ば name の 値 を 変 更 し な い ( setenv () は 成 功 の ス テ ー タ ス を 返 す )。 こ の 関 数 は 、 ( putenv (3) と 違 い ) name value に よ り 参 照 さ れ る 文 字 列 の コ ピ ー を 行 う 。

unsetenv () 関 数 は 、 変 数 name を 環 境 か ら 削 除 す る 。 name が 環 境 に な い 場 合 、 こ の 関 数 は 成 功 し 、 環 境 は 変 更 さ れ な い 。

返 り 値

関 数 setenv () と unsetenv () は 、 成 功 す る と 0 を 返 す 。 エ ラ ー の 場 合 は -1 を 返 し 、 errno を 設 定 し て エ ラ ー の 原 因 を 示 す 。

エ ラ ー

EINVAL

name が NULL で あ る か 、 長 さ が 0 の 文 字 列 を 指 し て い る か 、 '=' 文 字 が 含 ま れ て い る 。

ENOMEM

環 境 に 新 し い 変 数 を 追 加 す る の に 十 分 な メ モ リ ー が な い 。

属 性

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

Image grohtml-30620-1.png

準 拠

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

注 意

POSIX.1 は 、 setenv () や unsetenv () が リ エ ン ト ラ ン ト (再 入 可 能 ) で あ る こ と を 要 求 し て い な い 。

glibc 2.2.2 以 前 で は 、 unsetenv () は 返 り 値 が void の プ ロ ト タ イ プ で あ っ た 。 も っ と 最 近 の glibc 版 は 、 「 書 式 」 セ ク シ ョ ン で 示 し て い る よ う に POSIX.1 互 換 の プ ロ ト タ イ プ で あ る 。

バ グ

POSIX.1 で は 「 name に '=' 文 字 が 含 ま れ る 場 合 、 setenv () は エ ラ ー EINVAL で 失 敗 す べ き で あ る 」 と 述 べ ら れ て い る 。 し か し 2.3.4 よ り 前 の バ ー ジ ョ ン の glibc で は 、 name に '=' 文 字 が 含 ま れ る の を 許 し て い る 。

関 連 項 目

clearenv (3), getenv (3), putenv (3), environ (7)

こ の 文 書 に つ い て

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