微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C:什么是缓冲区下溢的例子?

我知道什么是缓冲区溢出.我不知道缓冲区下溢是什么.

我猜测这是一个特定的缓冲区,而不是字节溢出,这是一个字节的下溢.

char buffer[8];
fgets(buffer,sizeof(buffer),stdin);

上面没有错误.

char buffer_overflow[8];
fgets(buffer_overflow,16,stdin);

如果用户输入例如“deutschland”,则上述将导致缓冲区溢出.

我可以在代码中获得一个例子,什么是缓冲区下溢?

解决方法

缓冲区下溢与缓冲区溢出无直接关系.然而,缓冲器下溢可能是例如一个问题.环形缓冲区.

考虑例如音频播放:您的音频缓冲区可能是内核内存中的一个环形缓冲区.如果写入的数据慢于音频驱动器/硬件从缓冲区读取,缓冲区将变为空(“下溢”),导致口吃音频.对于其他类型的实时数据处理和媒体播放也存在类似的问题.

因此,缓冲区下溢通常不是故障条件(与缓冲区溢出不同,缓冲区溢出通常导致程序执行未定义的不必要的行为,如终止,执行一些不需要的代码等).

原文地址:https://www.jb51.cc/c/115062.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐