2011-10-24 71 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意思是: 「打開的文件太多」。 經過一番思考,我認爲應用程序會打開一個文件,系統不再允許這個文件。應用程序無法正確處理這種情況,並且會因分段錯誤而崩潰。 「開放」系統調用的返回值是否在各處正確檢查?

相關問題