Linux下查看控制环境变量的方法
<p><strong>查看环境变量</strong></p>
<p>
查看某一环境变量:比如我们需要查看HOME这个环境变量,我们可以在shell下直接输入echo $HOME,我们可以把所有的环境变量和环境变量的值都打印出来</p>
<p>
<strong>打印环境变量</strong></p>
<p>
libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以 在使用时 要用extern声明。</p>
<p>
下面提供了一个程序打印环境变量</p>
<div class="jb51code">
<div>
<div class="syntaxhighlightercpp" id="highlighter_28309">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="cpp preprocessor">#include<stdio.h></code>
</div>
<div class="line number2 index1 alt1">
<code class="cpp spaces"> </code><code class="cpp color1 bold">int</code> <code class="cpp plain">main()</code>
</div>
<div class="line number3 index2 alt2">
<code class="cpp spaces"> </code><code class="cpp plain">{</code>
</div>
<div class="line number4 index3 alt1">
<code class="cpp spaces"> </code><code class="cpp comments">//libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头⽂文件中,所以</code>
</div>
<div class="line number5 index4 alt2">
<code class="cpp spaces"> </code><code class="cpp comments">//在使⽤用时 要⽤用extern声明。</code>
</div>
<div class="line number6 index5 alt1">
<code class="cpp spaces"> </code><code class="cpp keyword bold">extern</code> <code class="cpp color1 bold">char</code><code class="cpp plain">** environ;</code>
</div>
<div class="line number7 index6 alt2">
<code class="cpp spaces"> </code><code class="cpp comments">// while(environ)</code>
</div>
<div class="line number8 index7 alt1">
<code class="cpp spaces"> </code><code class="cpp comments">// {</code>
</div>
<div class="line number9 index8 alt2">
<code class="cpp spaces"> </code><code class="cpp comments">// printf("%s\n",*environ++);</code>
</div>
<div class="line number10 index9 alt1">
<code class="cpp spaces"> </code><code class="cpp comments">// }</code>
</div>
<div class="line number11 index10 alt2">
<code class="cpp spaces"> </code><code class="cpp comments">// printf("hah");</code>
</div>
<div class="line number12 index11 alt1">
<code class="cpp spaces"> </code><code class="cpp color1 bold">int</code> <code class="cpp plain">i = 0;</code>
</div>
<div class="line number13 index12 alt2">
<code class="cpp spaces"> </code><code class="cpp keyword bold">for</code><code class="cpp plain">(i = 0;environ!=NULL;i++)</code>
</div>
<div class="line number14 index13 alt1">
<code class="cpp spaces"> </code><code class="cpp plain">{</code>
</div>
<div class="line number15 index14 alt2">
<code class="cpp spaces"> </code><code class="cpp functions bold">printf</code><code class="cpp plain">(</code><code class="cpp string">"%s\n"</code><code class="cpp plain">,environ);</code>
</div>
<div class="line number16 index15 alt1">
<code class="cpp spaces"> </code><code class="cpp plain">}</code>
</div>
<div class="line number17 index16 alt2">
<code class="cpp spaces"> </code><code class="cpp keyword bold">return</code> <code class="cpp plain">0;</code>
</div>
<div class="line number18 index17 alt1">
<code class="cpp spaces"> </code><code class="cpp plain">}</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
控制环境变量接口<code>getenv</code>,<code>setenv</code>,<code>unsetenv</code></p>
<p>
<strong>getenv()函数</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlightercpp" id="highlighter_343982">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="cpp preprocessor">#include <stdlib.h></code>
</div>
<div class="line number2 index1 alt1">
<code class="cpp color1 bold">char</code> <code class="cpp plain">*</code><code class="cpp functions bold">getenv</code><code class="cpp plain">(</code><code class="cpp keyword bold">const</code> <code class="cpp color1 bold">char</code> <code class="cpp plain">*name);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
getenv()功能的搜索环境列表找到环境变量名称,并返回一个 指向相应值串的指针。如果没有找到则返回NULL</p>
<p>
<strong>setenv()函数和unsetenv</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlightercpp" id="highlighter_734149">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="cpp preprocessor">#include <stdlib.h></code>
</div>
<div class="line number2 index1 alt1">
<code class="cpp color1 bold">int</code> <code class="cpp plain">setenv(</code><code class="cpp keyword bold">const</code> <code class="cpp color1 bold">char</code> <code class="cpp plain">*name, </code><code class="cpp keyword bold">const</code> <code class="cpp color1 bold">char</code> <code class="cpp plain">*value, </code><code class="cpp color1 bold">int</code> <code class="cpp plain">overwrite);</code>
</div>
<div class="line number3 index2 alt2">
<code class="cpp color1 bold">int</code> <code class="cpp plain">unsetenv(</code><code class="cpp keyword bold">const</code> <code class="cpp color1 bold">char</code> <code class="cpp plain">*name);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
setenv()是设置环境变量,如果成功则返回0,如果没有成功则返回非0</p>
<p>
unsetenv()是删除一个环境变量</p>
<p>
下面提供一段程序大家可以自行的测试一下</p>
<div class="jb51code">
<div>
<div class="syntaxhighlightercpp" id="highlighter_421197">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
<div class="line number21 index20 alt2">
21</div>
<div class="line number22 index21 alt1">
22</div>
<div class="line number23 index22 alt2">
23</div>
<div class="line number24 index23 alt1">
24</div>
<div class="line number25 index24 alt2">
25</div>
<div class="line number26 index25 alt1">
26</div>
<div class="line number27 index26 alt2">
27</div>
<div class="line number28 index27 alt1">
28</div>
<div class="line number29 index28 alt2">
29</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="cpp preprocessor">#include <stdio.h> </code>
</div>
<div class="line number2 index1 alt1">
<code class="cpp preprocessor">#include <stdlib.h> </code>
</div>
<div class="line number3 index2 alt2">
<code class="cpp preprocessor">#include <string.h> </code>
</div>
<div class="line number4 index3 alt1">
</div>
<div class="line number5 index4 alt2">
<code class="cpp color1 bold">int</code> <code class="cpp plain">main(</code><code class="cpp keyword bold">void</code><code class="cpp plain">) </code>
</div>
<div class="line number6 index5 alt1">
<code class="cpp plain">{ </code>
</div>
<div class="line number7 index6 alt2">
<code class="cpp spaces"> </code><code class="cpp color1 bold">char</code><code class="cpp plain">* val; </code>
</div>
<div class="line number8 index7 alt1">
<code class="cpp spaces"> </code><code class="cpp keyword bold">const</code> <code class="cpp color1 bold">char</code><code class="cpp plain">* name =</code><code class="cpp string">"ABC"</code><code class="cpp plain">; </code>
</div>
<div class="line number9 index8 alt2">
</div>
<div class="line number10 index9 alt1">
<code class="cpp spaces"> </code><code class="cpp comments">//获取ABC环境变量的值 </code>
</div>
<div class="line number11 index10 alt2">
<code class="cpp spaces"> </code><code class="cpp plain">val = </code><code class="cpp functions bold">getenv</code><code class="cpp plain">(name); </code>
</div>
<div class="line number12 index11 alt1">
<code class="cpp spaces"> </code><code class="cpp functions bold">printf</code><code class="cpp plain">(</code><code class="cpp string">"No.1 %s=%s\n"</code><code class="cpp plain">, name, val); </code>
</div>
<div class="line number13 index12 alt2">
</div>
<div class="line number14 index13 alt1">
<code class="cpp spaces"> </code><code class="cpp comments">//覆盖写入环境变量 </code>
</div>
<div class="line number15 index14 alt2">
<code class="cpp spaces"> </code><code class="cpp plain">setenv(name, </code><code class="cpp string">"I amsure of that I will get it"</code><code class="cpp plain">, 1); </code>
</div>
<div class="line number16 index15 alt1">
<code class="cpp spaces"> </code><code class="cpp functions bold">printf</code><code class="cpp plain">(</code><code class="cpp string">"No.2%s=%s\n"</code><code class="cpp plain">, name, val); </code>
</div>
<div class="line number17 index16 alt2">
</div>
<div class="line number18 index17 alt1">
<code class="cpp spaces"> </code><code class="cpp plain">val = </code><code class="cpp functions bold">getenv</code><code class="cpp plain">(name); </code>
</div>
<div class="line number19 index18 alt2">
<code class="cpp spaces"> </code><code class="cpp functions bold">printf</code><code class="cpp plain">(</code><code class="cpp string">"No.3%s=%s\n"</code><code class="cpp plain">, name, val); </code>
</div>
<div class="line number20 index19 alt1">
</div>
<div class="line number21 index20 alt2">
<code class="cpp spaces"> </code><code class="cpp comments">//删除一个环境变量 </code>
</div>
<div class="line number22 index21 alt1">
<code class="cpp spaces"> </code><code class="cpp color1 bold">int</code> <code class="cpp plain">ret =unsetenv(</code><code class="cpp string">"ABC"</code><code class="cpp plain">); </code>
</div>
<div class="line number23 index22 alt2">
<code class="cpp spaces"> </code><code class="cpp functions bold">printf</code><code class="cpp plain">(</code><code class="cpp string">"ret =%d\n"</code><code class="cpp plain">,ret); </code>
</div>
<div class="line number24 index23 alt1">
</div>
<div class="line number25 index24 alt2">
<code class="cpp spaces"> </code><code class="cpp plain">val = </code><code class="cpp functions bold">getenv</code><code class="cpp plain">(name); </code>
</div>
<div class="line number26 index25 alt1">
<code class="cpp spaces"> </code><code class="cpp functions bold">printf</code><code class="cpp plain">(</code><code class="cpp string">"No.3 %s=%s\n"</code><code class="cpp plain">,name, val); </code>
</div>
<div class="line number27 index26 alt2">
</div>
<div class="line number28 index27 alt1">
<code class="cpp spaces"> </code><code class="cpp keyword bold">return</code> <code class="cpp plain">0; </code>
</div>
<div class="line number29 index28 alt2">
<code class="cpp plain">} </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。</p>
<p>
原文链接:http://blog.csdn.net/Neil4/article/details/72865497?utm_source=tuicool&utm_medium=referral</p>
頁:
[1]