3
Cプログラムでは、stdinからテキスト行を読みたいと思っています。 同時に私は別のファイル記述子からのデータを扱いたいと思います。ノンブロッキングの方法でテキスト行を読む
poll
を使用して、2つのソースのいずれかが読み込み可能になるのを待ってそれに応じて処理しようとしました。しかし、pollは裸のファイル記述子を必要とし、fgets
のようなもので全行を読むにはFILEハンドルが必要です。
fileno
またはfdopen
を使用して「変換」することはできますが、両方を混在させて使用することはお勧めできません。
したがって、ブロックやスレッドなしでテキストの行を待つ良い方法はありますか?
なぜstdinから読み込むには 'read()'のようなシステムコールを使わないのですか? – MikeCAT
'read'は行の最後まで読みにくいです。これは、FILEに似た独自のバッファリングインフラストラクチャを実装する必要があることを意味します。 – michas
'fdopen'は私にとって正しい方法です。それを試しましたか? –