setenv

Section: C Library Functions (3)
Updated: 2026-02-08
Index JM Home Page roff page
 

名前

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

ライブラリ

標準 C ライブラリ (libc,~-lc)  

書式

#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 <= 2.19: */ _BSD_SOURCE
 

説明

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

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

返り値

setenv() and unsetenv() functions return zero on success, or -1 on error, with errno set to indicate the error.  

エラー

EINVAL
name is NULL, points to a string of length 0, or contains an '=' character.
ENOMEM
環境に新しい変数を追加するのに十分なメモリーがない。
 

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース属性値
setenv(), unsetenv() Thread safetyMT-Unsafe const:env
 

標準規格

POSIX.1-2008.  

歴史

POSIX.1-2001, 4.3BSD.

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

警告

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

バグ

POSIX.1 specifies that if name contains an '=' character, then setenv() should fail with the error EINVAL; however, versions of glibc before glibc 2.3.4 allowed an '=' sign in name.  

関連項目

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


 

Index

名前
ライブラリ
書式
説明
返り値
エラー
属性
標準規格
歴史
警告
バグ
関連項目

This document was created by man2html, using the manual pages.