C: バッファアンダーフローの例は何ですか? 質問する

C: バッファアンダーフローの例は何ですか? 質問する

私は知っているバッファオーバーフローが何なのか私には全く分かりませんがバッファアンダーフローは。

特定のバッファがバイトのオーバーフローではなく、バイトのアンダーフローを受信する場合だと推測します。

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

上記ではエラーは発生しません。

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

上記の結果、バッファオーバーフローたとえば、ユーザー入力が「deutschland」だった場合。

コードの例を教えていただけますか?バッファアンダーフローは?

ベストアンサー1

バッファ アンダーフローはバッファ オーバーフローに直接関係しません。ただし、リング バッファなどではバッファ アンダーフローが問題になることがあります。

たとえば、オーディオの再生について考えてみましょう。オーディオ バッファは、カーネル メモリのどこかにあるリング バッファであると考えられます。オーディオ ドライバ/ハードウェアがバッファから読み取る速度よりも遅い速度でデータを書き込むと、バッファが空になり (「アンダーフロー」)、オーディオが途切れることになります。他の種類のリアルタイム データ処理やメディア再生にも、同様の問題が存在します。

したがって、バッファ アンダーフローは、それ自体が障害状態ではないことがよくあります (バッファ オーバーフローとは異なります。バッファ オーバーフローは通常、プログラムの終了、不要なコードの実行など、未定義の不要な動作を引き起こします)。

おすすめ記事