SETENV - Linux手册页

时间:2019-08-20 18:01:16  来源:igfitidea点击:

Linux程序员手册 第3部分
更新日期: 2017-09-15

名称

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版本

说明

如果名称尚不存在,则setenv()函数将使用值value将变量名称添加到环境中。如果环境中确实存在name,则其值将更改为overwrite非零值;如果overwrite为零,则name的值不会更改(并且setenv()返回成功状态)。此函数复制名称和值所指向的字符串的副本(与putenv(3)相比)。

unsetenv()函数从环境中删除变量名称。如果名称在环境中不存在,则函数成功,并且环境不变。

返回值

setenv()和unsetenv()函数在成功时返回零,在错误时返回-1,其中设置了errno来指示错误原因。

错误说明

EINVAL
name为NULL,指向长度为0的字符串,或包含aq = aq字符。
ENOMEM
内存不足,无法向环境添加新变量。

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
setenv(),unsetenv()Thread safetyMT-Unsafe const:env

遵循规范

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

备注

POSIX.1不需要重入setenv()或unsetenv()。

在glibc 2.2.2之前,unsetenv()被原型化为返回void;最新的glibc版本遵循SYNOPSIS中显示的POSIX.1兼容原型。

BUGS

POSIX.1指定如果名称包含aq = aq字符,则setenv()应该失败,并显示错误EINVAL;但是,2.3.4之前的glibc版本允许使用aq = aq登录名。

另外参见

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

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/