ファイルから読み込み、入力に対して何らかの作業を行い、それをソケットに出力するプログラムがあります。1 か月以上正常に動作していましたが、突然エラー 11 (EAGAIN?) が表示されてプログラムが強制終了しました。プログラムの 32 個のインスタンスを開始すると、EAGAIN メッセージを受信して数分以内に半数以上が終了します。ファイルをノンブロッキングとして設定したことはありません。また、入力ファイルがどのようにブロックされるか以外に、データは常にそこにありますよね? このコードに加えた唯一の変更は、ソケット接続が失われたときにプログラムが停止するのを避けるために、sigpipe 信号を無効にすることでした。
コードを投稿していないことを許してください。ただし、コピーして貼り付けることができず、とにかくコードが散らばっています。ただし、1行でファイルを開き、後で readline(file, inputString) を呼び出すのと同じくらい簡単です。
ありがとう。