本文转载自:http://www.cnblogs.com/nufangrensheng/p/3507968.html

每个程序都会接收到一张环境表。与参数表一样,环境表也是一个字符指针数组,其中每个指针包含一个以null结束的C字符串的地址。全局变量environ则包含了该指针数组的地址:

extern char **environ;    要在程序中使用全局变量environ时,需要用该语句作变量声明。extern指示environ在其他文件中已定义,要在本文件中使用。

例如,如果该环境包含5个字符串,那么它看起来可能如图7-2所示。其中,每个字符串的结尾处都显示地有一个null字符。我们称environ为环境指针(environment pointer),指针数组为环境表,其中各指针指向的字符串为环境字符串。

按照惯例,环境由

name=value

这样的字符串组成,这与图7-2中所示相同。大多数预定义的名字完全由大写字母组成,但这只是一个惯例。

在历史上,大多数UNIX系统支持main函数带有三个参数,其中第三个参数就是环境表的地址:

int main( int argc, char *argv[], char *envp[] );

因为ISO C规定main函数只有两个参数,而且第三个参数与全局变量environ相比也没有带来更多益处,所以POSIX.1也规定应使用environ而不使用第三个参数。

通常用getenv和putenv函数来访问特定的环境变量,而不是用environ变量。但是,如果要查看整个环境,则必须使用environ指针。

本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/

转载于:https://www.cnblogs.com/zzb-Dream-90Time/p/5934049.html

进程环境之环境表【转】相关推荐

  1. Linux进程全解2——进程环境(环境变量、进程运行的虚拟地址空间)

    以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 1.环境变量 进程运行的环境中的变量. (1)export命令查看环境变量: (2)进程环境表 每一个进程中都有一 ...

  2. cmake 常用变量和常用环境变量查表手册

    cmake 常用变量和常用环境变量查表手册 一,cmake 变量引用的方式: 前面我们已经提到了,使用${}进行变量的引用.在 IF 等语句中,是直接使用变量名而不通过${}取值 二,cmake 自定 ...

  3. 查看进程运行状态的环境变量

    背景:因最近试安装Linux下的jira,有一个中文插件安装后,一旦设置开机启动后,它是英文,而在终端再重新启动一次后呢,似乎插件生效,它又恢复为正常中文界面,我首先想这这涉及到一个环境变量的问题,因 ...

  4. linux进程的环境变量,LINUX系统学习一(进程、MMU,环境变量、getenv、fork、getpid/ge...

    LINUX系统学习一(进程.MMU,环境变量.getenv.fork.getpid/ge LINUX系统学习一(进程.MMU,环境变量.getenv.fork.getpid/getppid.ps.ki ...

  5. 最新天龙八部环境-GS环境教程-【长期稳定版本】+ 视频教程

    前言:本环境开源免费,无毒无后门.有疑问或者BUG,请提交到is https://gitee.com/yulinzhihou/gstlenv/issues 不要再猜测安装了环境被远控,被注入偷取服务端 ...

  6. java开发环境配置环境变量_3. Java开发环境的搭建:安装JDK,配置环境变量

    1.安装JDK开发环境 开始安装JDK: 修改安装目录如下: 确定之后,单击"下一步". 注:当提示安装JRE时,可以选择不要安装. 2.配置环境变量: 对于Java程序开发而言, ...

  7. 进程创建fork--文件表项继承

    进程创建fork–文件表项继承 子进程继承父进程的文件描述表,不继承共享文件表项和iNode. 父进程创建一个子进程后,文件表项中的引用计数器加1变为2,当父进程操作close操作后,计数器减1,子进 ...

  8. Spring Boot Spring Cloud 区分 开发环境 测试环境 预发布环境(灰度环境) 正式环境

    各环境的区别 开发环境(dev):开发的时候用的环境 测试环境(test):日常测试或者是上线前测试. 预发布环境(灰度环境)(pre):发布前的最后调试,数据源与正式环境一致. 正式环境(prod) ...

  9. Computer:计算机测试理论(开发/测试/上线)之DEV、SIT、UAT、PRD四套环境(测试环境/开发环境/生产环境)详细介绍之详细攻略

    Computer:计算机测试理论(开发/测试/上线)之DEV.SIT.UAT.PRD四套环境(测试环境/开发环境/生产环境)详细介绍之详细攻略 目录 测试理论 1.DEV.SIT.UAT.PRD四套环 ...

  10. 认知环境,环境对产品的影响无孔不入

    本文由菩提创作,本文仅菩提个人观点. 一. 开  篇 朋友问:"在互联网公司这么久,怎么撑下来的?" Hmm,糟心事真不少.成年人的世界,没有人轻轻松松. 菩提那老夫聊发少年狂的豪 ...

最新文章

  1. Q 版老黄带着硬核技术再登场,有点可爱,很有东西
  2. vue中的mixins怎么用?
  3. SQL语句中用Parameters有什么好处
  4. Date日期类型的绑定
  5. BDFeatureMatch_yalmip_vlfeat
  6. 所有科研人都应该收藏的论文下载网站,不是sci-hub!
  7. 高等组合学笔记(五): 加括号问题,集合的分类问题,多项式恒等式的组合证明
  8. python 基础简单猜数游戏
  9. 了解SQL Server审核
  10. mysql启动和常用语法实战回顾
  11. plsql 往视图传参数_我们可以将参数传递给SQL中的视图吗?
  12. 斯诺登最新爆料:QQ和飞信也被美国国家安全局监控
  13. TOEFL资料 280多个
  14. 数据删掉了怎么恢复?数据删除后还能恢复吗
  15. 探秘广场舞:中老年市场绝佳切口?
  16. 全国大学计算机硕士专业排名,计算机考研院校排名:中国大学计算机学科排行榜...
  17. PyCharm 激活 截止日期2100年1月
  18. 苹果电脑mac桌面上出现关不掉的黑框/白框 解决办法
  19. Redis客户端Lettuce深度分析介绍
  20. udp广播 安卓和pc互相收不到消息

热门文章

  1. ubuntu20.04LTS系统的终端terminal透明化设置
  2. pymysql语法_pymysql的用法
  3. php select user 验证,php 用户验证的简单示例
  4. python工作不好找吗_如何更好的找到 Python 工作?
  5. sql2012找不到到服务器,sql server 2012导入数据时找不到服务器名称
  6. android多屏应用程序,微软也尝试“多屏协同” Windows系统可以运行安卓程序
  7. edxp显示未安装_如何在 Centos 8 / RHEL 8 上安装和配置 VNC 服务器
  8. brew php mysql_MAC下用homebrew安装及配置apache、php和mysql
  9. 树莓派python交互界面实例_树莓派综合项目2:智能小车(二)tkinter图形界面控制...
  10. 人脸识别技术如何应用到美颜领域?