
程序readenv.c展现了于c语言里存取环境变量的好些技巧,该程序会依照与dos的SET命令一样的格式,打印出当下全部的环境变量,接着寻觅PATH变量,打印出整个路径字符串。
在该程序里头,存在着两个重要的子程序,其中一个是find_env_string() ,其主要起到的作用是,依据从调用者那儿传递过来的要求,要么从环境空间的起始点开始。
或者,从上次搜索之后停留那一位置开始,着手去寻找紧接着的首个环境字符串,具体程序清单如下。
#include
#include
#include
#define MAX 127
#define TRUE 1
#define FALSE 0
#define FIRST 1
#define NEXT 0
void dispenv(void);
整数型数值查找环境字符串,该查找在整数型数值重新启动的情况下进行,此整数型数值为重新启动。
char env_string;
int env_offset=0;
void main()
char *path_string; ,调用子程序dispenv() ,以与SET命令相同的格式 ,打印出当前环境字符串。
进行dispenv函数调用,此函数会在环境变量里查找PATH这个变量,之后把整个论经字符串给打印出来。
要是路径字符串等于通过获取环境变量得到的路径 ,那又怎样。
void dispenv()
宣告一个名为restart的整数变量,在for循环里头,初始设定restart的值为FIRST,再去调用子程序find_env_string()。
找出首个环境字符串把它打印出来,接着将restart设定成NEXT,然后持续去寻找下一个环境字符串进行查找。
一个环境字符串,一直到结束,子程序find_env_string()返回FALSE的时候为止,*/。
以重启为初始值等于首个,查找环境字符串,若找到则继续,若未找到则停止,若找到则以重启为下一个值,如此循环。
printf("/n%s",env_string);
/********************************************/
找出环境字符串,整数类型,重启时进行此操作,返回值亦为整数。
int buf_offset;
int environment;
要是不存在环境,那么,把环境空间短地址送进变量environment里头。
environment=peek(_psp,0x2c);
if(restart)
当首次进行调用的时候,环境被设置为0 ,这意味着偏移量被放置为0 ,也就是从环境空间的起点开始。
先把buf_offset赋值为0,接着设置为TRUE,然后env_offset进行自增,在这个过程中持续进行操作。
env_string
buf_offset
它等于,通过peekb函数,作用于environment,使用env_offset这个偏移量,所得到的结果。
/*将环境空间中的字符逐个读入数组env_string中
if(env_string
buf_offset
){/*若为空字符,继续*/
buf_offset++;
continue;
若 `buf_offset` 等于 `0`,那么这个环境就会结束,返回 `FALSE`,要是 `buf_offset` 里面的值不是 `0` 呢 ,就不是这种情况了。
return FALSE;
env_offset进行自增操作,/*要是属于空字符的话,那么就表明一个环境字符串已经结束,返回TRUE */。
return TRUE;
此外要是你期望以更优的方式提升你的程序编写能力,学好C语言以及C++编程!实现弯道超越,比别人快上一步!笔者这儿说不定能够对你有所助力~

主页面上,由UP上传了好些学习C/C++编程的视频教程,对于那些有兴趣或者正处于学习阶段的小伙伴而言,绝对得去瞧上一瞧呀!它会对你产生帮助的哟~
分享(源码、项目实战视频、项目笔记,基础入门教程)
迎接那些转行以及学习编程的伙伴,借助更多的资料去进行学习然后成长,可比个人自行去琢磨而实现成长快得多呢!

2324

被折叠的 条评论
为什么被折叠?



