[源码分析] 【C标准库里那些好玩的东西】strlen之glibc实现

辛昕   2017-11-1 21:56 楼主
source insight毕竟是收费,好用不假,但有时没找到彻底破解的版本,30天就提醒一次真是神烦。 加上我公司的电脑没法正常上传代码,因此,在线工具成了我的首选。 之前我已经选了一款 在线 C/C++ 编译器,那款编译器胜在足够简单。 现在我再选一款 在线 编辑器,专门用来看代码。 特别的,对应到这个帖子里要看的是 glibc的strlen.c 老规矩,由于是公司电脑,没法上代码——下次回家了我慢慢倒腾,再把源码贴上来。 现在,先上几个图,让大家感受感受。 小小一个strlen,花样还真不少,看来,写一个 C标准库 真不是一件好玩的事。 首先,推荐大家用 SourceInsight看,估计这么出名的工具,大家都喜欢用吧。 首先搜索strlen的实现,我首先被这个下马威吓着了。 5个实现,3个函数,2个宏定义。 strlen_1.png 不过,仔细看看,有一个名字里有个 i386,也就是说,大概和机器类型有关,还稍稍松一口气。 strlen_2.png strlen_3.png strlen_4.png strlen_5.png strlen_6.png 虽然我还认真看,但是,大家有没发现,它似乎没有一个和我们的实现类似? 总有一些奇奇怪怪,让人陌生的函数调用。 本帖最后由 辛昕 于 2017-12-7 01:00 编辑
强者为尊,弱者,死无葬身之地

回复评论 (9)

坦白说,我一个都没看懂,里面还出现了一些 语法上的盲区,相信是大多数人平常不会碰到的东西。

——以前,我一直在想,如何才能正儿八经地去阅读一份代码,一个库,如果Linux太过庞大,也离我们太过遥远,那么,也许阅读 C标准库 的一个开源实现版本是最有意义的。

然而,我当时根本不知道从何看起,而今,我发现,我突然对strlen很感兴趣,于是我觉得,也许用这种方式,从一两个函数开始,也许有望一点一点突破 C标准库 的阅读。

敬请期待。
强者为尊,弱者,死无葬身之地
点赞  2017-11-1 21:59
玩的这么底层
点赞  2017-11-1 22:17
教主能不挖坑吗?挖了赶紧填,不然会被打
作为一个菜逼,干货并没有多少。唯一会的就是水,所以回帖水分大。望见谅!
点赞  2017-11-2 09:08
厉害了,不明觉厉。
先码下 看看
点赞  2017-11-2 09:15
引用: 人民币的幻想 发表于 2017-11-2 09:08
教主能不挖坑吗?挖了赶紧填,不然会被打

这不是开始填了嘛.......
强者为尊,弱者,死无葬身之地
点赞  2017-11-2 10:32
里面的写法有些非常规
点赞  2017-11-2 20:01
辛昕,你这也没说啥啊
玩板看这里: https://bbs.eeworld.com.cn/elecplay.html EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
点赞  2017-12-6 15:37
引用: okhxyyo 发表于 2017-12-6 15:37
辛昕,你这也没说啥啊

长期忘更,骚瑞
强者为尊,弱者,死无葬身之地
点赞  2017-12-7 00:32
引用: okhxyyo 发表于 2017-12-6 15:37
辛昕,你这也没说啥啊

既然你提到,那就从这里开始收拾好了
强者为尊,弱者,死无葬身之地
点赞  2017-12-7 00:33
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复