侧边栏壁纸
博主头像
noerror

虚灵不寐,众理具而万事出。

  • 累计撰写 238 篇文章
  • 累计创建 9 个标签
  • 累计收到 2 条评论
标签搜索

目 录CONTENT

文章目录

getenv函数用法详解

noerror
2022-11-09 / 0 评论 / 0 点赞 / 13 阅读 / 538 字 / 正在检测是否收录...

getenv函数用法详解

getenv函数简介

  • 头文件包含
#include <stdlib.h>
  • 函数定义
char *getenv(const char * name );
char *secure_getenv(const char * name );

getenv函数常见使用错误

  • 编译错误
    warning: implicit declaration of function ‘getenv’ [-Wimplicit-function-declaration]
    解决办法:包含头文件
#include <stdlib.h>

getenv函数详细描述

getenv ()函数搜索环境列表以找到环境变量name ,并返回指向相应value字符串的指针。
特定于GNU的secure_getenv ()函数与getenv ()类似,只是在需要“安全执行”的情况下返回NULL。如果在加载调用进程运行的程序时下列条件之一为真,则需要安全执行:

  • 进程的有效用户ID与其真实用户ID不匹配,或者进程的有效组ID与其真实组ID不匹配(通常这是执行set-user-ID或set-group-ID程序的结果);
  • 在可执行文件上设置了有效能力位;或者
  • 该进程有一个非空的允许功能集。

如果由某些Linux安全模块触发,也可能需要安全执行。
secure_getenv ()函数旨在用于通用库中,以避免在set-user-ID或set-group-ID程序意外信任环境时可能出现的漏洞。

getenv函数返回值

getenv ()函数返回指向环境中值的指针,如果不匹配,则返回NULL。

getenv函数其他说明

环境列表中的字符串格式为name=value。
正如通常实现的那样,getenv ()返回一个指向环境列表中字符串的指针。调用者必须注意不要修改这个字符串,因为那会改变进程的环境。
getenv ()的实现不需要可重入。getenv ()返回值所指向的字符串可以静态分配,可以通过后续调用getenv ()、putenv (3)、setenv (3)、unsetenv (3)进行修改
secure_getenv ()的“安全执行”模式由包含在从内核传递到用户空间的辅助向量中的 AT_SECURE 标志控制。

0

评论区