当前位置: 首页 > web >正文

获取环境变量的两种方式:getenv()和environ

什么是环境变量?

        大家可以查看这篇文章认识环境变量:通俗易懂linux环境变量-CSDN博客

实操如何在编写代码时获取环境变量?

        示例代码如下:

#include <stdio.h>
#include <stdlib.h>extern char **environ;  // 声明环境变量数组int main() {// 方法1:使用getenv函数获取特定环境变量const char *path = getenv("PATH");if (path != NULL) {printf("PATH: %s\n", path);}// 方法2:遍历所有环境变量printf("\n所有环境变量:\n");for (char **env = environ; *env != NULL; ++env) {printf("%s\n", *env);}return 0;
}

        代码输入如下:

 getenv()介绍

        函数原型:

#include <stdlib.h>
char *getenv(const char *name);

该函数会返回一个指向环境变量 name 值的指针,若环境变量不存在,则返回 NULL

environ 介绍

        environ类型如下:

char **environ;
  • environ 是一个全局变量,用于访问当前进程的环境变量。
  • environ指向一个指针,这个指针指向一个字符数组。这个数组里面的每个元素就是该进程的一个环境变量

        下列代码演示了如何利用environ这个全局指针变量,来获取指定的环境变量,大家应该很容易看懂:

#include <stdio.h>
#include <unistd.h>int main() {char **env = environ;while (*env!= NULL) {if (strncmp(*env, "PATH=", 5) == 0) {printf("PATH environment variable: %s\n", *env + 5);break;}env++;}return 0;
}

http://www.xdnf.cn/news/12800.html

相关文章:

  • Nginx Stream 层精准定位ngx_stream_geoip_module
  • 指针的定义与使用
  • Mybatis-Plus的LambdaWrapper
  • 嵌入式面试高频(5)!!!C++语言(嵌入式八股文,嵌入式面经)
  • 将数据库表导出为C#实体对象
  • EMC测试
  • 6月7日day47打卡
  • [ACTF2020 新生赛]Include 1(php://filter伪协议)
  • 嵌入:AI 的翻译器
  • golang常用库之-go-i18n库(国际化)
  • 26、跳表
  • SEO长尾词优化实战策略
  • 【大模型原理与技术-毛玉仁】第五章 模型编辑
  • leetcode刷题日记——二叉搜索树中第 K 小的元素
  • MIT 6.S081 Lab 11 networking
  • RD-Agent-Quant:一个以数据为中心的因素与模型联合优化的多智能体框架
  • CANoe trace里面显示的Time 具体是什么意思
  • Python抽象基类实战:构建广告轮播框架ADAM的核心逻辑
  • Python绘制三十六计
  • OGG 23ai for DAA 部署与补丁升级
  • 雪花ID问题诊断与解决方案
  • C++调试(肆):WinDBG分析Dump文件汇总
  • stm32内存踩踏一例
  • 高斯消元法及其扩展
  • 【2025年软考中级】第二章2.3 编译程序基本原理
  • 当数据包从上层移动到下层时,OSI 模型中会发生什么?
  • Go爬虫开发学习记录
  • 从内存角度透视现代C++关键特性
  • freeRTOS 互斥量优先级继承机制函数实现xQueueGenericReceive()
  • C++ 信息学奥赛总复习题答案解析(第一章)