반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- win32
- 당사자표시정정신청서
- cartalyst
- blockchain
- auth
- 코로나
- Blade
- 체당금
- Java
- Sentinel
- Python
- 전자소송
- Bootstrap
- reactnative
- 이더리움
- as후기
- vue
- javascript
- php
- Laravel
- 개인사업자
- 사업자계좌
- 보정명령
- Eclipse
- elasticSearch
- Tutorial
- 코로나19
- 인민공원
- 소액임금체불
- 홈택스
Archives
- Today
- Total
그냥 사는 이야기
IcmpCreateFile() 의 handle은 꼭 IcmpCloseHandle()을 해주자 본문
반응형
핸들을 하나 생성하면 제거 해줘야 하는데 이상하게 MSDN 의 예제나 다른 사람들의 블로그에 잘못된 예가 올라와 있어 글을 남긴다.
ICMP를 통해 ping test 하는 부분에서 메모리 leak이 많이 발생했다. 처음 봤을 때는 별 문제 없는 것 같아보였다. ICMP API는 처음 다뤄 보는 것이지만 메모리릭만 찾으면 되니깐,
HANDLE hIcmpFile = IcmpCreateFile();
:
dwRetVal = IcmpSendEcho(hIcmpFile,ulDestAddr,SendData,nSendSize,NULL,ReplyBuffer,nRecvSize,dwTimeout);
:
CloseHandle(hIcmpFile);
CloseHandle()이 아니다
그런데, 그걸 MSDN의 예제에서는 handle을 close 해주려는 부분 자체가 없다. 그래서 혹시나 해서 CloseHandle부분을 주석처리해주니 예외는 발생하지 않지만 역시나 메모리 릭이 생겼다.
그래서 구글로 찾은 것이 첨부된 문서에서 IcmpCloseHandle()를 찾았다.
msdn의 예제에도 언급되어 있지 않고 IcmpCreateFile() 부분에서도 언급되어 있지 않고 최소한 Remark에 해제에 대한 언급이 있어야 되는데 그렇지 않았다.
http://msdn.microsoft.com/en-us/library/aa366045(VS.85).aspx
쩝. 눈썰미 좋은 사람은 IcmpCloseHandle()을 찾던지 하겠지.
그런데, 예전엔 CloseHandle()로 close가 정상적으로 되었었나? 왜 잘못된 예제가 돌아다니는지 모르겠다.
'Development > System' 카테고리의 다른 글
devcon을 사용하여 disk를 disable 시키기 (0) | 2009.10.21 |
---|---|
LoadLibrary() / FreeLibrary() 에서 memory leak 발생 (0) | 2009.07.17 |
wmic에서 원하는 data 필드의 값 추출하기 (2) | 2009.03.20 |
인증서를 발급 받고 그걸로 code signing을 해보자~ (5) | 2009.02.17 |
x86 or AMD64 architecture 구하면서 (0) | 2008.12.09 |
Comments