zoukankan      html  css  js  c++  java
  • 环境变量

    环境变量

    环境变量: 在操作系统中用来指定操作系统运行环境的一些参数. 通常具备以下特征: (1) 字符串(本质); (2) 有统一的格式: 名=值[:值]; (3) 值用来描述进程环境信息

    存储形式: 命令行参数类似. char *[]数组, 数组名: environ, 内部存储字符串, NULL作为结尾

    使用形式: 与命令行参数类似

    加载位置: 与命令行参数类似. 位于用户区, 高于stack的起始位置

    引入环境变量表: 必须声明环境变量: extern char ** environ;

    常见环境变量

    按照惯例, 环境变量字符串都是name=value这样的形式, 大多数name有大写字母加下划线组成, 一般把name的部分叫做环境变量, value的部分则是环境变量的值. 环境变量定义了进程的运行环境, 一些比较重要的环境变量的含义如下:

    PATH

    可执行文件的搜索路径. ls命令也是一个程序, 执行它不需要提供完整的路径名/bin/ls. 然而执行当前目录下的程序a.out却需要提供完整的路径名./a.out, 这是因为PATH环境变量的值里包含了ls命令所在的目录/bin, 却不包含a.out所在的目录. PATH环境变量的值可以包含多个目录, 用:隔开. 在shell中使用echo $PATH可查看PATH的值

    SHELL

    当前shell, 它的值通常是/bin/bash

    TERM

    当前终端类型, 在图形界终端界面下它的值通常是xterm, 终端类型决定了一些程序的输出显示方式, 比如图形界面可以显示汉字, 而字符终端一般不行

    LANG

    语言和locale, 决定了字符编码以及时间, 货币等信息的显示格式

    HOME

    当前用户主目录的路径, 很多程序需要在主目录下保护保存配置文件, 使得每个用户在运行该程序时都有一个自己的一套配置

    环境变量相关函数

    #include <stdlib.h>

    getenv

    char *getenv(const char *name);
    获取环境变量的值
    返回:
      成功: 返回环境变量的值
      失败: NULL

    setenv

    int setenv(const char *name, const char *value, int overwrite);
    设置环境变量的值
    参数:
      overwrite: 1 --> 覆盖原有环境变量; 0 --> 不覆盖
    返回值: 成功 0, 失败 -1

    unsetenv

    int unsetenv(const char *name);
    删除环境变量name的定义
    返回值: 成功 0, 失败 -1
    注意事项: name不存在仍返回0(成功), 当name命名为"ABC="时则会报错

  • 相关阅读:
    《构建之法》1.2.3章读后感
    0302思考并回答一些问题
    1231 实验四 递归下降语法分析程序设计
    1211 有穷自动机的构造与识别
    1112-评论
    C语言文法定义及C程序的推导过程
    词法分析
    0909对编译原理的理解
    团队合作2.0
    "数学口袋精灵"bug的发现及单元测试
  • 原文地址:https://www.cnblogs.com/hesper/p/10738797.html
Copyright © 2011-2022 走看看