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

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

相关内容

热门资讯

2025青岛国际标准化大会“标... 中国质量新闻网讯(记者朱文达)7月9日下午,2025青岛国际标准化大会“标准化人才培养与能力建设”分...
女生发现出租屋摄像头吓得发抖哽... 【#女生发现出租屋摄像头吓得发抖哽咽#】#发现摄像头女生怒斥房东不道歉#7月9日,网友发帖称在广州市...
全市重大项目集中联动专班第五次... 7月11日,全市重大项目集中联动专班第五次会议召开,听取相关情况汇报,研究解决存在问题,安排部署下一...
美股异动丨Meta跌超2%,可... Meta Platforms(META.US)盘初跌超2%至709.7美元。有消息称,Meta可能因...
实力蝉联!中能拾贝再获IDC工...   近日,国际数据公司(IDC)最新发布的《2025工业大模型应用进展与展望》报告中,中能拾贝凭借卓...
周末有阵雨,气温逐渐上升 7月11日重庆市气象台发布气象要讯未来三天大部地区多云部分地区有阵雨或雷雨截至15时,重庆多云为主各...
扬子新材A股股东户数减少45户... 7月11日消息,数据显示,截至2025年7月10日,扬子新材(维权)A股股东总户数为2.22万户,较...
真爱美家A股股东户数增加125... 7月11日消息,数据显示,截至2025年7月10日,真爱美家A股股东总户数为6483户,较上期(20...
【数说“苏超”】255%:一张... 一片绿茵场,全城消费热。在刚刚过去的周末,一组数据见证江苏文旅消费爆发,印证赛事经济的热力辐射。特别...
A股绿色周报|11家上市公司暴... 每经记者|刘志远    每经编辑|杨夏     违反建设项目验收制度、超标排放水污...