fflush を使用しないでください。代わりにこの関数を使用してください:
04
03
実装に依存しますが、この関数は常に機能します。 C では、12
を使用することは悪い習慣と見なされています。 .
24
の動作 は入力ストリームに対して定義されていません (オンライン 2011 標準):
7.21.5.236
関数
あらすじ
1<プレ>14 説明
2 ストリームが、最新の操作が入力されていない出力ストリームまたは更新ストリームを指している場合、43
関数により、そのストリームの未書き込みデータがホスト環境に配信され、ファイルに書き込まれます。それ以外の場合、動作は未定義です。
353
の場合61
の null ポインターです。 関数は、動作が上記で定義されているすべてのストリームに対して、このフラッシュ アクションを実行します。
返品
478
関数はストリームのエラー インジケータを設定し、書き込みエラーが発生した場合は EOF を返し、それ以外の場合はゼロを返します。
LINUX で作業しているときに同じ問題に直面しました。この問題の別の解決策は、83
などのダミー文字を定義することです。 97
を入れます 実際の入力が行われる直前にスキャンします。これは私にとってはうまくいきました。あなたにも役立つことを願っています。
Linux で常に動作するもの:
21
tcdrain を使用できます とtcflush in/out/err fd だけではありません。