博客
关于我
linux编程:getenv,putenv,setenv
阅读量:792 次
发布时间:2023-02-05

本文共 1794 字,大约阅读时间需要 5 分钟。

环境变量管理函数说明

1. getenv函数

getenv函数用于获取环境变量的值。该函数接受一个字符串参数name,表示环境变量的名称。如果环境变量name存在,则返回指向该变量值的指针;如果不存在,则返回NULL。

函数定义

char * getenv(const char *name);

函数说明

getenv函数会根据环境变量名查找对应的值。环境变量的格式通常为name=value。例如,USER=root 表示环境变量USER的值为root。

返回值

  • 成功获取环境变量值时,返回指向该值的指针。
  • 未找到对应环境变量时,返回NULL。

示例代码

#include 
int main() { char *p; if ((p = getenv("USER")) != NULL) { printf("USER=%s\n", p); } return 0;}

执行结果:

USER=root

2. putenv函数

putenv函数用于修改或新增环境变量的值。参数string的格式为name=value。如果环境变量name已存在,则更新其值;否则,新增该环境变量。

函数定义

int putenv(const char *string);

函数说明

putenv函数通过解析string参数来设置或修改环境变量。解析规则如下:

  • 如果string中包含'='',则name为前部分,value为后部分。
  • 如果string不包含'='',则name为整个字符串,value为空。

返回值

  • 成功修改或新增环境变量时,返回0。
  • 发生错误(如解析失败或权限不足)时,返回-1。

示例代码

#include 
int main() { // 获取当前USER值 char *p = getenv("USER"); printf("USER=%s\n", p); // 修改USER值为test putenv("USER=test"); // 再次获取USER值 p = getenv("USER"); printf("USER=%s\n", p);}

执行结果:

USER=rootUSER=test

3. setenv函数

setenv函数用于设置或修改环境变量的值。该函数接受三个参数:name(环境变量名称)、value(变量值)、overwrite(控制是否覆盖现有值)。

函数定义

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

函数说明

setenv函数根据overwrite参数决定是否覆盖现有环境变量:

  • 如果overwrite不为0,且环境变量name已存在,则更新其值为value。
  • 如果overwrite为0,且环境变量name已存在,则忽略value参数,保持现有值。
  • 如果环境变量name不存在,则创建该变量,并设置值为value。

返回值

  • 成功修改或新增环境变量时,返回0。
  • 发生错误(如权限不足或无效参数)时,返回-1。

示例代码

#include 
int main() { // 获取当前USER值 char *p = getenv("USER"); printf("USER=%s\n", p); // 修改USER值为test,并覆盖现有值 setenv("USER", "test", 1); // 修改USER值为空(相当于删除环境变量) setenv("USER", "", 0); // 检查USER值 p = getenv("USER"); printf("USER=%s\n", p);}

执行结果:

USER=rootUSER=testUSER= (null)

说明

  • unsetenv函数用于删除或清除环境变量的值。其作用与setenv类似,但通常不会设置新的值。
  • 如果overwrite参数为0,并且value为空(如setenv("USER", "", 0)),则相当于删除环境变量。这种用法在某些情况下非常有用。
  • 转载地址:http://mlkfk.baihongyu.com/

    你可能感兴趣的文章
    linux开机启动脚本制作
    查看>>
    Linux性能优化思路和方法
    查看>>
    linux打印函数是哪个文件夹,如何从linux上的文件夹中找到一个函数
    查看>>
    Linux搭建FTP服务(附FTP Server 服务器客户端工具)
    查看>>
    Linux搭建HTTP服务
    查看>>
    Linux搭建NFS服务器
    查看>>
    Linux搭建NTP服务器
    查看>>
    Linux操作系统安装与gcc和内核升级
    查看>>
    Linux文件内容查询命令
    查看>>
    linux文件属性
    查看>>
    Linux文件打包压缩、解压缩、备份命令使用方法
    查看>>
    Linux文件权限
    查看>>
    Linux文件查找命令find,xargs详述【转】
    查看>>
    linux文件目录解释
    查看>>
    Linux文件系统与目录配置
    查看>>
    Linux文件系统权限第二弹:特殊权限
    查看>>
    Linux文件系统类型和区别
    查看>>
    linux文件结构、文件系统和挂载
    查看>>
    Linux文本过滤工具grep
    查看>>
    Linux方案级ROM/RAM优化记录
    查看>>