私は知っているバッファオーバーフローが何なのか私には全く分かりませんがバッファアンダーフローは。
特定のバッファがバイトのオーバーフローではなく、バイトのアンダーフローを受信する場合だと推測します。
char buffer[8];
fgets(buffer, sizeof(buffer), stdin);
上記ではエラーは発生しません。
char buffer_overflow[8];
fgets(buffer_overflow, 16, stdin);
上記の結果、バッファオーバーフローたとえば、ユーザー入力が「deutschland」だった場合。
コードの例を教えていただけますか?バッファアンダーフローは?
ベストアンサー1
バッファ アンダーフローはバッファ オーバーフローに直接関係しません。ただし、リング バッファなどではバッファ アンダーフローが問題になることがあります。
たとえば、オーディオの再生について考えてみましょう。オーディオ バッファは、カーネル メモリのどこかにあるリング バッファであると考えられます。オーディオ ドライバ/ハードウェアがバッファから読み取る速度よりも遅い速度でデータを書き込むと、バッファが空になり (「アンダーフロー」)、オーディオが途切れることになります。他の種類のリアルタイム データ処理やメディア再生にも、同様の問題が存在します。
したがって、バッファ アンダーフローは、それ自体が障害状態ではないことがよくあります (バッファ オーバーフローとは異なります。バッファ オーバーフローは通常、プログラムの終了、不要なコードの実行など、未定義の不要な動作を引き起こします)。