2011-10-24 19 views
0

Linux上で動作するCアプリケーションを持っていて、何千ものメッセージを処理します...しかし、共有ライブラリをロード中にエラー:sh:共有ライブラリの読み込み中にエラーが発生しました:libc.so.6:共有オブジェクトファイルを開くことができません:エラー24

SH:カップル分、それは次のようなエラーが表示されますlibc.so.6と:共有オブジェクトファイルを開くことができません:エラー24

アプリケーションは、秒あたり約30のメッセージをやっているが、それはいくつかのファイルオープンハンドルの問題かもしれない?

STDOUTは受け取り:

任意のアイデア "プロセス19374は、信号11を受けましたか"?ヘルプ;-)

リントン

+1

シグナル11はセグメンテーションフォールトを意味します。デバッガを使用してみてください。 gdb(ヘルプは "man gdb")。 libcエラーについては不明です。アプリケーションが起動するプロセスの数プロセス19374はサブプロセスですか?アプリケーションがクラッシュする前後に実行中のプロセス(「ps aux | grep 」)をリストできますか?エラーメッセージの順序は何ですか(「プロセス19374受信信号11の前に「共有オブジェクトファイルを開くことができません」と表示されます)。 – Michel

+2

ファイル記述子が漏れていないことを確認してください。 'lsof -p 'はあなたが何を開いているかを伝えます。 –

答えて

2

にerrno 24の手段のための

ありがとう: "開かれたファイルが多すぎます"。 いくつかの考えの後、私はアプリケーションがファイルを開くと思うが、これはもはやシステムによって許可されていない。アプリケーションはこの状況を正しく処理できず、セグメンテーション違反でクラッシュします。 「オープン」システムコールの戻り値はどこでも正しくチェックされていますか?

関連する問題

 関連する問題