본문 바로가기

리눅스개발자를 위한 디버깅 기법 리눅스 개발자를 위한 디버깅 기법 ⑤ 메모리 관리 디버깅 기법 박재호 책임연구원 / 디비코 [ 입력 : 2006-07-04 오후 3:31:13 | 지면발행 : 2006년 7월호 96쪽] 출처 : http://www.embeddedworld.co.kr/article/view.asp?article_idx=7558 C#, 자바와 같은 고차원적인 프로그래밍 언어를 사용할 경우 메모리 관리와 가베지 컬렉션을 언어차원에서 제공하므로 프로그래머가 메모리에 대한 걱정을 전혀 할 이유가 없다. 하지만 C나 C++와 같은 프로그래밍 언어를 사용할 경우에는 효율을 높이기 위한 목적으로 메모리 관리를 직접 해야 하기 때문에 메모리에 대해 신경을 곤두세워야 한다. 비록 요즘 나오는 CPU는 대부분 가상 메모리 기능을 제공하므로.. 더보기
프로그래밍 관련 즐겨찾기 모음 자바 뉴스그룹/Java Community comp.lang.java.programmer 국내 han.comp.lang.java Java Lobby (A Java Developers' community) 국내 자바 사이트 JavaCafe.or.kr 사이트 yoonforh의 자바 묻고 답하기 게시판 김덕태 님의 자바 1.1 한글 관련 내용 한국 자바 개발자 컨퍼런스 자바 문서 한글화 사이트(자바 문서 한글화에 참여할 뜻있는 분들을 기다리고 있습니다.) 김필호 님의 자바와 한글 게시판 (유료 자바 게시판이며 유료인만큼 답변이 신속, 성실하게 올라옵니다.) 김필호 님의 자바 Q&A 게시판 강신동 님의 Korea Java Developer Connection 지니에 흥미를 가지고 있는 그룹 Whang's Java.. 더보기
recv 에러 결과값 int형 정상이라면 받은 Bytes를 리턴한고, finish를 받았으면 Zero를 리턴한다. 비정상이라면 SOCKET_ERROR (-1) 에러일때의 상황은 아래중 하나이다. WSANOTINITIALISED WSAStartup을 호출하라! 이런 에러는... 나면 안된다 ㅡㅇㅡㅋ WSAENETDOWN The network subsystem has failed. WSAEFAULT 버퍼가 잘못 지정되었다. 사용할수 없는 메모리 영역이다 코딩상의 실수 이거나, 시스템이 아주 심각한 오류상태이다. WSAENOTCONN connection이 아직 되지 않았거나, 이미 끝난 상태 연결된것이 없는데 리시브 할수 없는게 당연. WSAEINTR The (blocking) call was canceled through.. 더보기
system error code #define EPERM 1 /* Not super-user */ #define ENOENT 2 /* No such file or directory */ #define ESRCH 3 /* No such process */ #define EINTR 4 /* Interrupted system call */ #define EIO 5 /* I/O error */ #define ENXIO 6 /* No such device or address */ #define E2BIG 7 /* Arg list too long */ #define ENOEXEC 8 /* Exec format error */ #define EBADF 9 /* Bad file number */ #define ECHILD 10 /* No childr.. 더보기
protoent PROTOENT struct protoent { char FAR * p_name; char FAR * FAR * p_aliases; short p_proto; }; Members p_name 프로토콜의 공식적인 이름 p_aliases 프로토콜 이름과 관계되는(앨리어스 집함) 널로 끝나는 스트링 포인터 p_proto 호스트 바이트 오더로 이루어진 프로토콜 번호 반환되는 포인터는 윈도우즈 소켓 시스템 자체에 할당된 구조체로 포인트 합니다. 애플리케이션이 이 메모리를 비우거나 내용을 수정할 수 없으며, 구조체에 저장된 데이터는 다음 윈도우즈 소켓이 호출될 때까지만 유효하므로, 필요할 경우 애플리케이션은 데이터의 복사본을 만들 수 있습니다. See Also overview, HOSTENT, SERVENT 더보기
putty (ssh) 첨부 putty ssh 더보기
stl 간단사용법 #include #include #include #include #include #pragma warning(disable : 4786) std::vector v1; std::list l1; std::hash_map h1; void Test(std::list test); 프로그램 소스 ..more >접기 void main(void) { // vector 사용 예제. v1.resize(2); v1[0] = 10; v1[1] = 20; v1.resize(3); v1[2] = 30; v1.push_back(40); std::cout 더보기
socket 함수 socket socket 함수는 소켓을 만들고 소켓 기술자(descriptor)를 어플리케이션에 반환 하는 함수 입니다. SOCKET socket ( int af, int type, int protocol ); Parameters af [입력] 어드레스 체계(address family)를 결정합니다. type [입력] 소켓의 타입을 결정합니다. 윈도우즈 소켓 1.1에서는 두가지 종류의 타입을 제공합니다. 아래에 그 종류에 대해서 간단히 설명했습니다. Type Explanation SOCK_STREAM 신뢰성있고, 접속지향적인, 하지만 느린, TCP 어드레스 체계에 사용됩니다. SOCK_DGRAM 비접속이고, 신뢰성없는 그러나 빠른, UDP 어드레스 체계에 사용됩니다. protocol [입력] 소켓과 함께.. 더보기
linger 함수 LINGER struct linger { u_short l_onoff; u_short l_linger; } Members l_onoff SO_LINGER를 활성화 하기위해서, 어플레케이션은 l_onoff 멤버를 0이 아닌 값으로 설정하고, l_linger 멤버를 0으로설정하거나, 원하는 타임아웃 값(초 단위로)을 설정해야 한 후, setsockopt 함수를 호출해야 합니다. SO_DONTLINGER를 활성화 하기위해서(즉, SO_LINGER를 비활성화 한다는 얘기겠죠) l_onoff 멤버를 0으로 설정하고, setsockopt 함수를 호출합니다. 비동기 소켓에서 0이 아닌 타임아웃 값을 가지고 SO_LINGER를 활성화 하는 것은 바람직하지 않다는 점을 염두해 두기 바랍니다. SO_LINGER를 활성화 .. 더보기
servent SERVENT struct servent { char FAR * s_name; char FAR * FAR * s_aliases; short s_port; char FAR * s_proto; }; Members s_name 서비스의 공식적인 이름 s_aliases 서비스 이름과 연관된(앨리어스 집단) 널로 끝나는 스트링 배열 s_port 서비스가 통신할 포트번호. 포트번호는 네트웍 바이트 오더입니다. s_proto 서비스와의 통신에 사용될 프로토콜 이름을 지정합니다. See Also overview, HOSTENT, PROTOENT 더보기