C语言中使用环境变量的技巧

实例1:

程序readenv.c显示了在c语言中存取环境变量的若干技巧。该程序将以与dos的set命令相同的格式打印出当前所有的环境变量,然后寻找path变量,打印出整个路径字符串。该程序中有两个重要的子程序,find_env_string(),它的主要作用是:根据从调用这传来的要求,或者从环境空间的起点开始,或者从上一次搜索後停留的地方开始,寻找随后的第一个环境字符串,具体程序清单如下。

/**************readnv.c****************/

#include
#include
#include
#define max 127
#define true 1
#define false 0
#define first 1
#define next 0
void dispenv(void);
int find_env_string(int restart);
char env_string[max+2];
int env_offset=0;
void main()
{
char *path_string; /*调用子程序dispenv(),以与set命令相同的格式打印出当前环境字符串*/
dispenv(); /*在环境变量中寻找path变量,并打印出整个论经字符串*/
if(path_string==getenv("path"))
printf("\nPATH=%s",path_string);
}

/********************************************/

void dispenv()
{
int restart; /*在for循环中,先置restart为first,调用子程序find_env_string()
寻找第一个环境字符串并打印,而后置restart为next,继续寻找下一
个环境字符串,直到结束子程序find_env_string()返回false为止*/
for(restart=first;find_env_string(restart);restart=next)
printf("\n%s",env_string);
}
/********************************************/
int find_env_string(int restart)
{
int buf_offset;
int environment;
if(!environment) /*将环境空间短地址送入变量environment中*/
environment=peek(_psp,0x2c);
if(restart)
environment=0; /*首次调用时,偏移量置0,即从环境空间起点开始*/
for(buf_offset=0;true;env_offset++){
env_string[buf_offset]=peekb(environment,env_offset);
/*将环境空间中的字符逐个读入数组env_string中
if(env_string[buf_offset]){/*若为空字符,继续*/
buf_offset++;
continue;
}
if(!buf_offset) /*若buf_offset=0,则中个环境结束,回false*/
return false;
env_offset++;/*若为空字符,则一个环境字符串结束,回true*/
return true;
}
}

时间: 2024-08-03 06:07:46

C语言中使用环境变量的技巧的相关文章

Visual Studio 2008 、 Windows 环境变量介绍 和 如何在文件中引用环境变量 .

Visual Studio 2008  和 Windows 环境变量对设置 相对路径很重要,这样便于代码的移植,即使换一台计算机,代码不用更改配置,直接就能用. 可以在项目的"工具""属性页"对话框中任何接受字符串的位置使用这些宏.这些宏不区分大小写.  关于如何自己定义环境变量详见我的另一文章:http://blog.csdn.net/jtop0/article/details/7574139     宏 说明 $(RemoteMachine) 在"调试

Win7系统中的环境变量PATH怎么修改

  方法一.通过命令设置环境变量 1.打开"开始→运行",在运行框中"cmd",回车打开命令提示符窗口; 2.在打开的命令提示符窗口中,输入"path",回车就可查看环境变量设置; 3. 更改环境变量有两种情况: 一是追加方式,就是在不改变环境变量现有设置的情况下,增加变量的值,比如要给环境变量增加一个值为"D:Python"的设置,可以输入"path=%path%;D:Python";而另一种是完全修改方

c语言-C语言中两个变量的值互换问题

问题描述 C语言中两个变量的值互换问题 两个变量的值互换为什么不能直接用 a=b;b=a;来实现. 解决方案 如gcwlwl7所说的 a=1 ,b=2 要变成a=2 b=1的话 用所列举的两个等式为 先a=b=2,此时a已经变成2了, 再b=a=2,b仍然等于2(a在上面已经变成2了.所以b=a即是b=2) 不过有种方法: a=1; b=2; a=a+b=3; (1+2) b=a-b=1; (3-2) a=a-b=2; (3-1) 即最后就得到 a=2;b=1啦 这个是不要用到中间变量的方法 希

Linux有问必答:如何在Linux中修改环境变量PATH

Linux有问必答:如何在Linux中修改环境变量PATH 提问: 当我试着运行一个程序时,它提示"command not found". 但这个程序就在/usr/local/bin下.我该如何添加/usr/local/bin到我的PATH变量下,这样我就可以不用指定路径来运行这个命令了. 在Linux中,PATH环境变量保存了一系列的目录用于用户在输入的时候搜索命令.PATH变量的值由一系列的由冒号分隔的绝对路径组成.每个用户都有特定的PATH环境变量(由系统级的PATH变量初始化)

Java中的环境变量设置---理解

java中环境变量的设置,主要是设置设置JAVA_HOME,CLASSPATH,在path变量中增加java的bin目录.当然现在都是用工具开发,可以不设置CLASSPATH,可能会有问题,所以还是尽量设置. JAVA_HOME C:Javajdk1.6.0_30(java的安装目录,) PATH C:Javajdk1.6.0_30bin(%JAVA_HOME%lib)(不要新建path在原来的path路径上新加java到bin的路径就可以了,) CLASSPATH .;%JAVA_HOME%l

Linux中修改环境变量及生效方法_Linux

在/etc/profile文件中添加变量[对所有用户生效(永久的)] 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是"永久的". 要让刚才的修改马上生效,需要执行以下代码 source /etc/profile 以上这篇Linux中修改环境变量及生效方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索

bootargs中的环境变量说明和一些常用的uboot命令

bootargs中的环境变量说明和一些常用的uboot命令      一些常见的uboot命令:Help [command]在屏幕上打印命令的说明Boom [addr]启动在内存储器的内核Tftpboot通过tftp启动内核Saveenv保存环境变量setenv name [value]  设置环境变量 bootargs中的环境变量console:告诉内核从哪接收启动信息  例如:console=ttyS0,115200n8//115200比特率,8位Video:告诉内核信息怎么配置视频设备,例

Unix中的环境变量的应用

环境变量在Unix操作系统中的地位不用笔者多说,大家都知道.但是在Unix操作系统中,有几个环境变量经常被人所忽视.笔者有时候跟一些经验比较丰富的系统工程师交流时,他们也不知道有这个环境变量.笔者今天就给大家介绍一下这些被忽视的环境变量,以及其应用.帮助大家扫扫认识的盲区. 一.防止文件被意外覆盖. 在Unix操作系统中,有一个很特殊的符号,叫做重定向符.通过这个符号,可以把一些屏幕的显示的结果或者其他内容重定向到一个文件中.显然这个重定向符号很受系统工程师的欢迎.如利用这个符号可以轻易的把当前

Linux中修改环境变量PATH

PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻.用以下命令可以看到 PATH的值. $ echo $PATH 例如,在主机中,用户yogin的PATH值为: /opt/kde/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/yogin/bin 其中":"为分隔符.所以,上面的一串目录可以看成是如下的目录列表. /opt/kde/bin /usr/local/bin /bin:/usr/bin /u