2012-01-16 1 views
2

/usr/sbin/lsof -p 20085 명령을 실행할 때 "프로토콜을 식별 할 수 없습니다"란 무엇입니까? lsof의 출력은 아래에 표시됩니다.소켓 설명자 누출 - 프로토콜을 식별 할 수 없습니까?

leak 20085 niki 3910u sock  0,5   2457507716 can't identify protocol 
leak 20085 niki 3911u sock  0,5   2457508136 can't identify protocol 
leak 20085 niki 3912u sock  0,5   2457509392 can't identify protocol 
leak 20085 niki 3913u sock  0,5   2457510457 can't identify protocol 
leak 20085 niki 3915u sock  0,5   2457510696 can't identify protocol 
leak 20085 niki 3916u sock  0,5   2457511180 can't identify protocol 
leak 20085 niki 3917u sock  0,5   2457511820 can't identify protocol 
leak 20085 niki 3918u sock  0,5   2457512402 can't identify protocol 
leak 20085 niki 3919u sock  0,5   2457513490 can't identify protocol 
leak 20085 niki 3920u sock  0,5   2457513493 can't identify protocol 
leak 20085 niki 3921u sock  0,5   2457643983 can't identify protocol 
leak 20085 niki 3922u sock  0,5   2457645099 can't identify protocol 
leak 20085 niki 3923u sock  0,5   2457645570 can't identify protocol 
leak 20085 niki 3924u sock  0,5   2457646223 can't identify protocol 
leak 20085 niki 3911u sock  0,5   2457508136 can't identify protocol 
leak 20085 niki 3912u sock  0,5   2457509392 can't identify protocol 

이 누출은 항상 양말 0.5입니다.

참고 : 런타임시 항상 열어야하는 소켓 3 개를 생성합니다. 여기에는 파일/소켓이 생성되지 않았으며 제 질문은 약 5000+ 프로토콜을 식별 할 수 없습니다. 이게 왜 그렇게?

감사합니다.

+2

소켓을 닫거나 다시 열지 않으십니까? 어떻게 소켓을 열어? 소켓 열기에 대한 호출 체인은 무엇입니까? 그들은 소켓을 듣고 있습니까 아니면 일부 서버에 연결합니까? –

+0

왜 태그가 C입니까? –

+0

@ Joachim Pileborg. socket (2) 시스템 호출을 사용하여 소켓을 여는 중입니다. 나는 절대로 소켓을 닫지 않을 것이고 나는 단지 3 개의 소켓을 만들 것이다. scoket은 일부 서버에 연결됩니다. – sach

답변

2

아마도 루프에서 호출되는 소켓을 함수 호출에 작성하고 있지만 작성된 소켓은 절대로 닫히지 않으므로 누수가 발생합니다.

관련 문제