永发信息网

C语言用read读取串口信息,按每字节读取和一次性读取一定长度效率上有区别吗?

答案:2  悬赏:50  手机版
解决时间 2021-03-07 23:11
C语言用read读取串口信息,按一个字节一个字节的读取和一次性读取一定长度效率上有区别吗?如果有的话相差多大?
最佳答案
肯定有区别的,而且相差还比较大。
因为read是用户态程序,然后每read一次都对应一次系统调用 (从用户态切换到内核态,再切回到用户态),其实耗时最多的就是状态切换。
如果一次性读取5个字节,那么就只有一次系统调用(两个状态切换),
如果一次读一字节,需要读5次,就有5次系统调用 (10个状态切换)。
具体相差多大,跟实际的环境有关,测试的话要大量的数据才能看出来。
全部回答
给你个思路,直接给你编的话可能对不上你的代码。 自己再定义一个数组temp1,给一个for循环,类似于 for(i = 1; i < 5; i ++){ temp1[i - 1] = temp[i]; } 这样temp1[]中就存储了你的后四个字节,之后再将这个temp1的元素一个一个转换为十六进制输出就好,比如说 for(pos = 0;pos < 4; pos ++) printf("%f ",(float)temp1[pos]); printf("\n");
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
"始皇以为贤勇"和"愚以为宫中之事 "中为的解
万维贸易公司在什么地方啊,我要过去处理事情
阅读下列《一战中,戴防毒面具的英国士兵》照
请问,舌头上有白点,我生下来舌尖上、下各一个
关于学习的好家训成语
小猫仔突然身体僵硬什么情况
求matlab高手帮忙改错,汽车转向的阿克曼原理
梅红干洗怎么去啊,有知道地址的么
我想用20个2N3055的三级管做一太电鱼机,请问
推荐一些反映英国资产阶级革命时期现状的电影
深圳福永到光明如何走
迪奥雪精灵系列的洗面奶 化妆水 敏感肌 过敏
寨保在哪里啊,我有事要去这个地方
银联无卡支付如何开通?
微信上可以不用办任何证件就可以卖东西吗
推荐资讯
石家庄到正定怎么坐车
人死了银行卡也没有了,钱怎么取
2010年11月1号属虎夜间1:6分生是什星座及运势
HIV侵入人体后,主要侵犯体内哪种免疫细胞()
你好,我是实习生,怎样才能少缴税呢,20%的
太阳能里没水了,白天的时候会爆管吗?
下列不属于电气线路的消防保护措施的是()。A.
网站SEO优化时重复内容过多或直接采集会被惩
葛店光谷大药房地址在什么地方,想过去办事
3DS怎么关闭背景音乐
网络用语.是什么意思
在某网上看到二代舒俱来,这是什么?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?