uboot环境变量学习-getenv

getenv并不是一个给用户操作的命令,而是在uboot里面被调用的一个跟环境变量相关的函数。

相关的代码
在这里插入图片描述
经过前面学习过了printenv和setenv,对这个字符串解析的方法已经很熟悉了,如果到时候忘了的话可以先看看前面的分析思路再回来这里看。
getenv函数
大概思路就是通过遍历default_environment[]数组,找到了这个环境变量之后,返回这个环境变量的第一个字符的地址,可以看到最后的一句

return ((char *)env_get_addr(val));

返回的就是一个指针,这个指针指向的就是需要找的环境变量的地址。

getenv_r函数
这个函数比getenv函数好,这两个函数就是不可重入和可重入的获取环境变量的版本。
因为getenv_r函数把整个环境变量都返回到buf里面,相当于多了一份拷贝,不论怎么修改都不会影响在ddr里面存的原始环境变量,即可重入。

getenv_r比getenv多了下面这部分。
在这里插入图片描述
在while条件里面判断的同时还进行这把环境变量赋值到buff的操作,最终如果复制的长度是满足我需要取的长度之和,就会在最后添加个\0然后退出,并且返回到底复制的长度值n。

总结:这一篇可能写的比较简略,但是都是在前几篇的基础上进行写的,要熟悉环境变量的字符串解析方法,要知道环境变量在ddr里面是通过字符串数组的方式存放的等等。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值