我知道什么是缓冲区溢出。我不知道什么是缓冲区下溢。
我猜这是当特定缓冲区接收而不是字节溢出,字节下溢时。
char buffer[8];
fgets(buffer, sizeof(buffer), stdin);
上面没有错误。
char buffer_overflow[8];
fgets(buffer_overflow, 16, stdin);
如果用户输入例如“ deutschland”,则以上内容将导致缓冲区溢出。
我可以在代码中得到一个示例,什么是缓冲区下溢?
缓冲区下溢与缓冲区上溢没有直接关系。但是,缓冲区下溢可能是环形缓冲区的问题。
例如,考虑音频回放:您的音频缓冲区可能是内核内存中某个地方的环形缓冲区。如果您写的数据速度比音频驱动程序/硬件从缓冲区读取的速度慢,则缓冲区将变空(“下溢”),从而导致音频卡顿。其他种类的实时数据处理和媒体回放也存在类似的问题。
因此,缓冲区下溢本身通常不是故障条件(与缓冲区上溢不同,缓冲区上溢通常导致程序执行未定义的有害行为,例如终止,执行一些有害代码等)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句