2011-10-24 5 views
0

Linux에서 실행되는 C 응용 프로그램을 가지고 있으며 수천 개의 메시지를 처리하지만 ... 공유 라이브러리를로드하는 동안 오류 :sh : 공유 라이브러리를로드하는 중 오류가 발생했습니다. libc.so.6 : 공유 객체 파일을 열 수 없습니다 : 오류 24

쉬 : 몇 분은 다음과 같은 오류가 나타납니다 libc.so.6으로 : 공유 객체 파일을 열 수 없습니다 : 오류 24

응용 프로그램은 초 당 약 30 메시지를하고있다가, 파일 열기 핸들 문제 일 수 있습니까?

STDOUT 수신 :

모든 아이디어 "프로세스 19,374 신호 (11)를 받았다"? 도움 ;-)

린톤

+1

신호 11은 세그먼트 오류를 ​​의미합니다. 디버거를 사용해보세요 (예 : gdb (도움을 받으려면 "man gdb"). libc 오류가 확실하지 않습니다. 애플리케이션이 몇 개의 프로세스로 시작합니까? 프로세스 19374가 하위 프로세스입니까? 응용 프로그램이 충돌하기 전후에 실행중인 프로세스 ("ps aux | grep ")를 나열 할 수 있습니까? 오류 메시지의 순서는 무엇입니까? ("프로세스 19374 수신 신호 11"이전에 "공유 객체 파일을 열 수 없습니다.") – Michel

+2

파일 설명자를 누출하지 않았는지 확인하십시오. 'lsof -p '는 열어 둔 내용을 알려줍니다. –

답변

2

의 errno (24) 수단

감사합니다 "열려있는 파일이 너무 많습니다." 몇 가지 생각을하면 응용 프로그램이 파일을 열어서 더 이상 시스템에서 허용하지 않는다고 생각합니다. 응용 프로그램이이 상황을 올바르게 처리 할 수 ​​없으며 세그먼트 화 오류로 인해 충돌합니다. "열린"시스템 호출의 반환 값이 모든 곳에서 올바르게 점검 되었습니까?

관련 문제