ファイル記述子が多すぎるため、アプリケーションが終了しました。そこで、gdb を使用してプログラムをデバッグしました。fflush 関数を使用すると、ファイル記述子の数が増加することがわかりました。
例えば:
// before fflush
// ll /proc/13593/fd/* | grep "send\.dat" | wc -l
// 7
fflush(pFile);
// after fflush
// ll /proc/13593/fd/* | grep "send\.dat" | wc -l
// 8
プロセス ID は 13593 です。変数 pFile はファイル send.dat を指します。
誰か理由を教えてくれませんか?どうもありがとう。