2

Linux で c を使用してデバイスから不明な量のバイト (生データ、NULL が含まれている可能性があります) を読み取る際に問題が発生しています。「読み取る準備ができている限り」デバイスを読み取るにはどうすればよいですか? (うまくいけば、一度に 1 バイトを読み取らずに)。

4

1 に答える 1

4

readを使用している場合、データがない場合はブロックし、読み取るデータがある場合は成功します。読み取るデータがあった場合は、必要な量を取得するか、読み取るデータがなくなった場合はそれより少ない量を取得します。read の戻り値を見て、どれだけ持っているかを判断します。非ブロッキングにすることもできますが、読み取りの戻り値をチェックするアプローチは関係なく当てはまります。

データのバーストの種類をよりよく認識している場合は、一度に 1 文字、またはそれ以上、処理したいサイズのチャンクでデータをチャンクします。

于 2013-01-07T14:37:03.473 に答える