C语言实战:读取并显示所有环境变量

c语言环境变量操作_readenv.c源码分析_c语言

程序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++编程!实现弯道超越,比别人快上一步!笔者这儿说不定能够对你有所助力~

c语言环境变量操作_readenv.c源码分析_c语言

主页面上,由UP上传了好些学习C/C++编程的视频教程,对于那些有兴趣或者正处于学习阶段的小伙伴而言,绝对得去瞧上一瞧呀!它会对你产生帮助的哟~

分享(源码、项目实战视频、项目笔记,基础入门教程)

迎接那些转行以及学习编程的伙伴,借助更多的资料去进行学习然后成长,可比个人自行去琢磨而实现成长快得多呢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值