作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我知道什么是缓冲区溢出。不过我不知道什么是缓冲区下溢。
我猜这是当一个特定的缓冲区接收而不是字节溢出,字节下溢。
char buffer[8];
fgets(buffer, sizeof(buffer), stdin);
以上不会出错。
char buffer_overflow[8];
fgets(buffer_overflow, 16, stdin);
如果用户输入的是“deutschland”,以上内容将导致缓冲区溢出。
我能得到一个代码示例吗,什么是缓冲区下溢?
最佳答案
缓冲区下溢与缓冲区溢出没有直接关系。然而,缓冲区下溢可能是一个问题,例如。环形缓冲区。
考虑例如音频播放:您的音频缓冲区可能是内核内存中某处的环形缓冲区。如果写入数据的速度比音频驱动程序/硬件从缓冲区读取的速度慢,则缓冲区变为空(“下溢”),导致音频断断续续。其他类型的实时数据处理和媒体播放也存在类似问题。
因此,缓冲区下溢本身通常不是故障情况(与缓冲区溢出不同,缓冲区溢出通常会导致程序执行未定义的、不需要的行为,例如终止、执行一些不需要的代码等)。
关于C:缓冲区下溢的一个/示例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26257639/
我是一名优秀的程序员,十分优秀!