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)。
Interface | Attribute | Value |
setenv(),unsetenv() | Thread safety | MT-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登录名。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。