본문 바로가기

Programming/C, C++6

메모리 누수없는 코드 만들기 C, C++ Visual Studio 에서 개발할 경우 메모리 누수를 확인할려면 디버그 모드에서 F5 (Ctrl+F5 아님) 로 프로그램을 실행하면 되는건 아시죠? 이때 C++ 의 경우는 new 를 사용하고 메모리 반환을 하지 않는경우 해당 위치를 output 창에 보여줍니다. 예를 들어 아래의 코드로 메모리 할당후 어디에서도 반환하지 않았다고 가정해봅시다. char *pszTest = new char[100] ; F5 로 프로그램 실행후 종료하면 Debug 출력창에 아래와 같이 나옵니다. Detected memory leaks! Dumping objects -> D:\Project\MemoryTest.cpp(60) : {73} normal block at 0x00374E58, 100 bytes long. Data:.. 2011. 6. 23.
파일 비교 부터 텍스트 비교까지 / 개발자를 위한 머지 툴 이분이 직접 비교해주셨다. http://ljh131.tistory.com/143 WinMerge는 한번 쓰고 지워버렸다. 다음으로 Ultra Compare 세번 정도 쓴 후 지웠다. 그리고 AcroEditer에 있던 Compare 툴 사용하다가 찾고 찾던 끝에 SourceGear Diff Merge로 갈아탔다. 정말 좋다. 추천 상용에선 Beyond Compare 무료에선 SourceGear Diff Merge http://www.sourcegear.com/diffmerge/downloads.html 2011. 4. 27.
SIGNAL 시그널 처리 21. 시그널 처리 시그널(앞으로 신호라 해석하지 않고 시그널이라고 하겠습니다. 그것이 더 좋을 것 같아서)은 프로세스에게 배달된 소프트웨어 인터럽트이다. 운영체제는 실행하고 있는 프로그램에 예외적인 상황을 보고하기 위해서 시그널을 사용한다. 어떤 시그널들은 유용하지 않은 메모리 주소를 참조하는것과 같은 에러를 보고하고; 다른 것은 전화선의 단절과 같은, 비동기적 사건을 보고한다. GNU C 라이브러리는 각각의 특정한 사건들의 종류에 따라, 다양한 시그널의 형태를 정의한다. 사건들의 어떤 종류들은 보통 프로그램의 계속된 진행을권장할 수 없거나 불가능하게 하고, 그에 해당하는 시그널들은 보통 그 프로그램을 중지시킨다. , 유해하지 않은 사건들을 보고한 다른 종류의 시그널들은 보통 무시된다. 만일 당신이 시.. 2011. 1. 26.
callback (콜백) 의 개념 콜백의 기본 개념 일반적인 의미에서 콜백이란 호출자(Caller)가 피호출자(Callee)를 호출하는 것이 아니라 피호출자가 호출자를 호출하는 것을 말한다( 참조). 콜백이 많이 사용되는 전형적인 예는 WIN32 API이다. 대개의 경우 응용 프로그램이 WIN32 API를 호출하는 거서이 일반적이지만 때때로 윈도우 시스템이 응용 프로그램을 호출해야 할 때가 있다. 이때 응용 프로그램은 콜백 함수를 윈도우 시스템에게 알려주고 어떤 조건이 만족되면 윈도우 시스템이 콜백 함수를 호출해 준다. WIN32 API의 EnumWindow, SetTimer 함수 등이 콜백을 사용하며 윈도우 프로시저(window procedure) 역시 콜백 개념을 사용한다. 는 전형적인 콜백 메커니즘을 보여주고 있다. 콜백 메커니즘의.. 2011. 1. 26.
와치독? 워치독??? WatchDog!! watch dog 왓치독, 많이 들어보신 용어일겁니다. 왓치독은 특정시간마다 감시하여 프로세스등이 동작이 멈추었는지등을 검사하여 재기동시키는등의 작동을 시키는 방식을 말합니다. 네이버 용어 사전에서는 이렇게 설명하고 있습니다. 오(誤)동작을 방지하기 위해 프로그램으로 설정된 타이머로 어떤 조건을 만족하면 경보를 표시하게 하는 장치이다 여기에는 소프트웨어적인 방법과 하드웨어적인 방법이 있는데 먼저 간단하게 소프트웨어적인 방법을 설명드립니다. 서버프로그램은 보통 동시에 많은 유저데이터를 처리하기위하여 많은 쓰레드를 사용하게 됩니다. 하지만 컴퓨터란 온도/습도및 주위영향과 자체 부품끼리의 간섭등에 인하여 오류가 날수있는 기기이기 때문에 프로그램이 언제든 비정상적인 동작을 할 확률이 있습니다. 일명 다운이라 하.. 2011. 1. 26.
socket 함수 정의 socket() 함수는 소켓을 생성하여 반환합니다. 헤더 #include #include 형태 int socket(int domain, int type, int protocol); 인수 int domain : 인터넷을 통해 통신할 지, 같은 시스템 내에서 프로세스 끼리 통신할 지의 여부를 설정합니다. domain domain 내용 PF_INET, AF_INET IPv4 인터넷 프로토콜을 사용합니다. PF_INET6 IPv6 인터넷 프로토콜을 사용합니다. PF_LOCAL, AF_UNIX 같은 시스템 내에서 프로세스 끼리 통신합니다. PF_PACKET Low level socket 을 인터페이스를 이용합니다. PF_IPX IPX 노벨 프로토콜을 사용합니다. int type : 데이터의 전송 형태를 지정하며 .. 2011. 1. 24.