第三个是in溢出的情况,具体来看看:
在第二个输出将缓冲区取空的时候,in = out = 178。接着,向缓冲区put了100个数据,这时候in += 100会溢出,溢出后in = 22。看输出结果:put前缓冲区为空,put100个数据后,缓冲区的空闲空间为28,数据长度为100,是正确的。
本文代码下载地址:
Linux公社资源站下载:
------------------------------------------分割线------------------------------------------
具体下载目录在 /2016年资料/12月/6日/模仿Linux内核kfifo实现的循环缓存/
------------------------------------------分割线------------------------------------------