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

肯定有区别的,而且相差还比较大。

因为read是用户态程序,然后每read一次都对应一次系统调用 (从用户态切换到内核态,再切回到用户态),其实耗时最多的就是状态切换。

如果一次性读取5个字节,那么就只有一次系统调用(两个状态切换),

如果一次读一字节,需要读5次,就有5次系统调用 (10个状态切换)。

具体相差多大,跟实际的环境有关,测试的话要大量的数据才能看出来。