1641_strchr函数的功能分析以及peek功能实现分析
创始人
2024-06-01 11:51:39
0

         全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com)

         继续分析shell例程代码,再次遇到了一个陌生的库函数strchr。

1. 从这里看,这个是一个库函数无疑了。

2. 这个函数,或者说这三个函数主要的功能是确认一个字符在字符串中的位置。

3. 从函数原型上,这个设计的确是让我觉得有点蒙圈。在UNIX的设计中,感觉int类型似乎到了滥用的地步。

4. strchr的作用是查找一个字符在字符串中的位置,找不到返回NULL;而strrchr则是反向查找,找不到返回NULL;strchrnul依然是正向的查找但是如果找不到不再返回NULL而是返回字符串最后的位置。

         Strchrnull是GNU的一个扩展,这也就意味着上面提到额度BSD等一系列的标准实现中可能是不包含的。

         基于此,这个函数的实现其实就很容易理解了。Peek做了什么呢?如果知道一个字符串,并且知道字符串结束的位置。Peek会跳过字符串中的空白,这是上面第一个strchr的作用,用来甄别空白字符。甄别处理的过程中,peek其实是会直接修整原始的字符串。假如,这样的操作结束后字符串不是空,并且字符串的第一个字符是toks字符串的子集,那么返回1,否则返回0。

         接下来,对peek进行一个简单的测试。

         可以用这种方式测试一组信息,并且打印展示出来所有的中间状态。

         设计了一组测试,进行了几种不同的信息peak测试。

test started:

string:    abcd123

toks:fedcba

after peek.

string:abcd123

test finished and return value:1

test started:

string:  1234

toks:fedcba

after peek.

string:1234

test finished and return value:0

test started:

string:abcd123

toks:fedcba

after peek.

string:abcd123

test finished and return value:1

test started:

string:1234

toks:fedcba

after peek.

string:1234

test finished and return value:0

test started:

string:

toks:fedcba

after peek.

string:    abcd123

test finished and return value:0

test started:

string:    abcd123

toks:43210

after peek.

string:abcd123

test finished and return value:0

test started:

string:  1234

toks:43210

after peek.

string:1234

test finished and return value:1

test started:

string:abcd123

toks:43210

after peek.

string:abcd123

test finished and return value:0

test started:

string:1234

toks:43210

after peek.

string:1234

test finished and return value:1

test started:

string:

toks:43210

after peek.

string:    abcd123

test finished and return value:0

         通过上面的测试记录看,测试还是很符合预期的。

相关内容

热门资讯

淹萝卜的潭子能淹鸡蛋不? 淹萝卜的潭子能淹鸡蛋不?洗刷干净可以腌鸡蛋的腌制食品的主要原料是盐,所以可以腌鸡蛋
怎样才能控制孩子不看手机,不玩... 怎样才能控制孩子不看手机,不玩游戏?首先应该给孩子树立一个规则意识,同时也应该多和孩子沟通,让孩子认...
一匹马和两只山羊的寓意 一匹马和两只山羊的寓意一匹马马和两只山羊是生肖马和羊。 因为很明显也很直接的告诉了我,有一匹马有二...
上海这里要拆迁了! (转自:楼市经典)最近,上海市区热门旧改项目,征收评估价公布了。01.65236元/㎡!729街坊征...
我在望京,“都挺好” 我在望京... “你可能在望京点过我的咖啡。”2011年就到望京了,缘分是加入了一家望京知名外企;2016年,决定把...
内外资一致!沪股通投资者纳入程... 中经实习记者 孙汝祥 记者 夏欣 北京报道2025年7月11日,上交所正式发布《上海证券交易所证券交...
望京科技创业园的建设发展 望京... 2001年6月,经科技部批准,产业区内的3平方公里土地范围被纳入中关村科技园区政策区域,成为中关村科...
黎巴嫩总统:目前不考虑黎以关系... 新华财经贝鲁特7月11日电(记者申峰)黎巴嫩总统约瑟夫·奥恩11日说,黎巴嫩目前没有将与以色列关系正...
美年大健康拟发行股份收购14家... 来源:中访网财观中访网数据  美年大健康产业控股股份有限公司(以下简称“美年大健康”)于2025年7...
岳阳市力推12条新兴优势产业链... 图为我市力推的12条新兴优势产业链之石油化工及新材料产业链生产基地。余剑摄岳阳日报讯(记者李美军通讯...