SYNOPSIS 总览

extern char **environ;

DESCRIPTION 描述

变量 environ 指向的是一个叫 'environment'(环境)的字符串数组 (这个变量必须在用户程序中声明,但是在使用 libc4 或 libc5 以及使用 glibc 并且定义了 _GNU_SOURCE 的情况下 ,它是在头文件 unistd.h 中声明的)。对于一个进程,这个字符串的数组是通过开始进程的 exec(3) 调用来得到,习惯上,这些字符串的格式是

USER
登录用户的名字(被一些从 BSD 派生来程序所使用)。
LOGNAME
登录用户的名字(被一些从 System-V 派生来程序所使用)。
HOME
用户的登录目录,被login(1)按口令文件 passwd(5) 设置。
LANG
当不被 LC_ALL 或更特殊的环境变量所忽略的时候,是用于地域分类的地域名。
PATH
预先设定的目录前缀的序列,sh(1) 和许多程序可借此查找路径名不完全的文件。前缀由':'分隔。(类似的,有一些 shell 用 CDPATH 查找位于不同目录的命令,以及用 MANPATH 找手册页等等。)
PWD
当前的工作路径。被一些 shell 设置。
SHELL
用户的登录 shell 的文件名。
TERM
用于准备输出的终端类型。
PAGER
用户指定的显示文本文件的工具。
EDITOR/VISUAL
用户指定的编辑文本文件的工具。

更多的名字可以通过和在 sh(1) 中的 export 命令和 'name=value',或 csh(1) 中的 setenv 命令设置。参数也可以在执行 exec(2) 的时候被放置在环境中。一个 C 程序可以使用函数 getenv(3)putenv(3)setenv(3)unsetenv(3) 来操纵自身的环境。

注意许多程序和库例程的行为受特定的环境变量的存在和值的影响。随便的搜集一下就有:

环境变量 LANG、LANGUAGE、NLSPATH、LOCPATH、LC_ALL、 LC_MESSAGES 等影响地域的处理。

TMPDIR 影响 tmpnam(3) 生成名字的路径名前缀和其他一些例程, sort(1) 和其他程序用的临时文件目录等等。

LD_LIBRARY_PATH、LD_PRELOAD 和其他 LD_* 变量影响动态 (装载器/连接器)的行为。

POSIXLY_CORRECT 使特定的程序和库例程遵循 POSIX 规定。

MALLOC_* 变量影响 malloc(3) 的行为。

HOSTALIASES 变量给出包含 gethostbyname(3) 用的别名的文件的文件名。

TZ 和 TZDIR 给出时区信息。

TERMCAP 给出给定终端的窗口大小(或给出包含这种信息的文件的文件名)。

等等,还有很多。

这里有一个明显的安全风险。不止一个系统命令曾经被一个使用了一个不寻常的 IFSLD_LIBRARY_PATH 变量值的用户诱入骗局中。

environ - 用户环境(变量)的更多相关文章

  1. Linux用户环境变量

    Linux用户环境变量 环境变量就是系统或软件设置的一些参数,用户环境变量就是用户登录系统后,都有自已专用的运行环境.在Windows系统中用户环境变量保存在用户家目录,Linux也是同样的.本文主要 ...

  2. linux sudo 系统环境变量 用户环境变量

    1. sudo就是普通用户临时拥有root的权限.好处在于,大多数时候使用用户自定义的配置,少数情况可以通过sudo实现root权限做事. 故而,需要注意的一点是,在你使用了sudo后,你临时不再是原 ...

  3. Mac 修改用户环境变量

    Mac 修改用户环境变量 sudo vim ~/.bash_profile

  4. Linux - 用户环境变量的查看与设置

    1. 查看当前有哪些环境变量 直接输入命令:env 2. 设置用户环境变量 输入命令:vim ~/.bash_profile,打开文件,输入如下内容: 范例(设置maven环境变量): export ...

  5. 用户环境变量 shell变量 别名

    常见用户环境变量: 环境变量 说明 LANG   HOME   LOGNAME 用户名 PATH   SHELL   PWD   查看环境变量用:env或者echo $LANG 设置用户环境变量:ex ...

  6. linux修改当前用户环境变量永久生效

    在linux环境中,修改当前用户环境变量,且永久生效的方法如下. 1,编辑~/.bash_profile文件 1 2 3 # Get the aliases and functions 4 if [ ...

  7. Center os 用户环境变量

    vi ~/.bash_profile进入用户环境变量设置 export JAVA_HOME=/usr/java/jdk1.7.0_76export JAVA_BIN=$JAVA_HOME/binexp ...

  8. python 设置系统/用户环境变量

    系统环境变量 winreg.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment' 用户环境变 ...

  9. (转)在Linux里设置用户环境变量的方法

    背景:在linux下,root用户安装完jdk后,非root用户不能使用java环境变量. 问题排查: 通过在root和非root用户下分别执行echo $PATH 可以观察环境变量的异同.然后将需要 ...

随机推荐

  1. 字符串转UTF-8码(%开头)

    var str = '中'; var code = encodeURI(str); console.log(code); // => %E4%B8%AD

  2. bzoj 2083 Intelligence test —— 思路+vector

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2083 先把所有子序列都存下来,总长度应该有限制,所以用 vector 存: 要做到 O(n) ...

  3. 【旧文章搬运】分析了一下360安全卫士的HOOK

    原文发表于百度空间及看雪论坛,2009-10-08 看雪论坛地址:https://bbs.pediy.com/thread-99128.htm 看时间,09年的国庆节基本上就搞这玩意儿了...==== ...

  4. Caused by: Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory - bean - jar

    转自:https://blog.csdn.net/u011422744/article/details/39851693 在SSH开发,搭建环境的时候,启动tomcat服务器,就报这个异常! 信息: ...

  5. Codeforces - 706B - Interesting drink - 二分 - 简单dp

    https://codeforces.com/problemset/problem/706/B 因为没有看见 $x_i$ 的上限是 $10^5$ ,就用了二分去做,实际上这道题因为可乐的价格上限是 $ ...

  6. 算法学习--Day2

    今天要多学一些内容了,昨天就写了一点sort和struct的用法,今天写了两道关于日期的题目,记录在这里. 题目描述 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天 ...

  7. 纯拓扑排序一搞poj2367

    /* author: keyboarder time : 2016-05-18 12:21:26 */ #include<cstdio> #include<string.h> ...

  8. mysql关于时间函数的应用

    1.获取今天的数据 date_format(publishtime, '%Y-%m-%d')= date_format(now(), '%Y-%m-%d') 2.获取今天和明天的数据 server.b ...

  9. bzoj 4446: [Scoi2015]小凸玩密室【树形dp】

    神仙题!参考https://www.cnblogs.com/wfj2048/p/7695711.html 注意完全二叉树不是满二叉树!!!! 设g[u][j]为u遍历完子树到深度为i-1的祖先的兄弟的 ...

  10. Codeforces 1000 (A~E)

    A Codehorses T-shirts 相同长度之间互相转化即可 #include<iostream> #include<cstdio> #include<cstri ...