개발

데몬 프로세스 생성하기

리눅스 네트워크 프로그래밍2부:데몬 프로세스 생성하기 글/ Ivan Griffin과 John Nelson 역/ 이기동(자유기고가) 데몬 프로세스는 여러 클라이언트에 서비스하기 위해서 백그라운드로 실행되는 서버이다. 여러분은 데몬 프로세스를 생성할 때 다음과 같은 몇 가지 사항에 주의하여야 한다. 개발하는 동안 디버깅할 때 printf나 write를 사용할 수 있도록 서버를 포그라운드로 실행하는 것이 좋다. 또한, 서버가 오동작 한다면 중단 문자(보통 CRTL-C)를 보내어 […]

데몬 프로세스 생성하기 더 읽기"

gdbm

목차 Copying Conditions. Introduction to GNU dbm. List of functions. Opening the database. Closing the database. Inserting and replacing records in the database. Searching for records in the database. Removing records from the database. Sequential access to records. Database reorganization. Database Synchronization Error strings. Seting options. File Locking. Two useful variables. Compatibility with standard dbm

gdbm 더 읽기"

[HTML] div 용법 정리

출처 : http://binnamoo.com/626   공간지정태그에는 DIV, SPAN, FIELDSET 3가지 종류가 있다. 비슷한 태그로서는 TABLE 태그가 있다.하지만 TABLE은 하나의 공간을 표현하기 위해 TR, TD로 나누어 표현하지만, DIV, SPAN, FIELDSET은 바로 보여지고 표현되는 것이 특징이다. DIV, SPAN, FIELDSET 태그 모두 특별한 속성은 없으며, style속성에 따라 형태가 달라진다. ▶ DIV, SPAN, FIELDSET 공통점  – 특별한 태그 속성이 없음 

[HTML] div 용법 정리 더 읽기"

UNIX Socket FAQ

일반 정보와 개념 이 FAQ에 대하여 누구를 위한 FAQ 인가? 소켓은 무엇인가? 소켓은 어떻게 작동하는가? 책에 있는 소스코드를 구할 수 있는데가 있는가? 또 다른 정보들은 어디에서 구할 수 있는가? 클라이언트와 서버 양쪽에 관한 질문 (TCP/SOCK_STREAM) 언제 상대방쪽 소켓이 끊겼는지 알 수 있는 방법이 있는가? bind()의 두 번째 파라메터는 무엇인가? 주어진 서비스의 port번호를 얻는 방법은? bind()

UNIX Socket FAQ 더 읽기"

네트워크 바이트 순서

네트워크 스택과 통신 프로토콜 역시 엔디안 방식을 정의해야 한다. 두 노드가 엔디안 방식이 다르면 서로 통신하지 못하기 때문이다. 그래서 임베디드 프로그래머는 특히 엔디안 방식에 신경 써야 한다. TCP/IP(Transmission Control Protocol and the Internet Protocol) 내 모든 프로토콜 계층은 빅 엔디안 방식을 따른다. 즉 (IP 주소, 패킷 길이, 체크섬 등) 계층 헤더에 들어 있는 16비트 값이나

네트워크 바이트 순서 더 읽기"

PE 파일포맷

개요  윈도우 시스템 프로그래밍한다는 사람치고 PE 파일에 대해서 모르는 사람은 아마 거의 없을 것이다. 윈도우 실행 파일 및 DLL, 그리고 드라이버 파일까지도 PE 파일 형태를 따르고 있으니 뭘 해도 따라다니는게 이 PE(Portable Executable) 파일 포맷이니까 말이다. PE 파일 포맷은 크게 헤더, 섹션, 데이터의 세부분으로 나뉘는데 기존 DOS 시절 사용하던 COFF(Common Object File Format)과 거의 비슷한

PE 파일포맷 더 읽기"

MFC 모든 헤더와 라이브러리 설명

다음글은 하이텔  MFC소모임의 시삽이신 권정혁님의 글을 정혁님의 허락하에다음과 같이 기재합니다. 허락해주신 정혁님께 감사드립니다.****************************************************************************이 글은 Mike Blaszczak 의 책 “Professional MFC” 의 Appendix D 에 들어있는내용을 번역한 글입니다. 제 허락없이는 다른 어떤게시판에도 옮기실수 없습니다. 물론 글의 원 소유자는 Mike 입니다.                                          

MFC 모든 헤더와 라이브러리 설명 더 읽기"

__cdecl,__stdcall__fastcall 호출규약

__cdecl C언어 표준 호출 규약이다. 파라미터는 오른쪽에서 왼쪽으로 스택을 통해 전달되며, 호출한 곳에서 스택을 정리한다. 특징적인건 호출한 쪽에서 스택을 정리하기 때문에 가변 인자를 지원한다는 것이다.  extern “C” int __cdecl CdeclFunc(int a, int b, int c)   {       printf(“%d %d %d\n”, a, b, c);   }  위 함수를 호출하기 위한 어셈블리 코드는 아래와 같다. add 명령어를 통해서 호출 한

__cdecl,__stdcall__fastcall 호출규약 더 읽기"

OpenSSL API를 이용한 보안 프로그래밍

보안 통신용 오픈 라이브러리인 OpenSSL용 API를 사용하는 방법을 배운다는 것은 힘든 일입니다. 문서화가 아직 덜 되어있기 때문입니다. 이 글을 통해서 이를 극복해 봅시다. 기본 연결을 설정한 후에, OpenSSL의 BIO 라이브러리를 사용하여 보안/비보안 연결을 구축하는 방법을 배워봅시다. 에러 탐지에 대한 부분도 설명합니다. OpenSSL API와 관련한 문서는 약간 모호하다. OpenSSL의 사용법에 대한 튜토리얼도 많지 않으므로, 애플리케이션에서 이를

OpenSSL API를 이용한 보안 프로그래밍 더 읽기"

[VC] #pragma

VC++에서 #pragma 사용법 설명.. MSDN에 최적화 관련 #pragma 용법은 아래와 같다. http://msdn.microsoft.com/ko-kr/library/h7k3a0bw.aspx   #pragma auto_inline #pragma check_stack #pragma function #pragma inline_depth #pragma inline_recursion #pragma intrinsic #pragma optimize   이중에서 일단, #pragma function #pragma intrinsic #pragma optimize 에 대해서 정리하고 다음것은 나중에 정리하자.   1. #pragma function <사용법> #pragma function( function1 [, function2, …] ) intrinsic

[VC] #pragma 더 읽기"

[VC] #pragma pack

메모리 패킹1.요약 #pragma pack을 이용하여 메모리를 특정 align으로 packing할 수 있다. 2.본문 데브피아에 다음과 같은 팁이 올라왔다. —————————————————————– 구조체 / 공용체 도는 클래스를 바이트 스트림으로 변화시켜야한다면 메모리를 패킹하자. – 사용하는 구조체 또는 공용체 / 클래스를 바이트 스트림으로 변화시켜야한다면, 메모리를 1 바이트 정열을 시켜야 정확한 바이트 단위 크기를 갔습니다. 주로 통신 프로그램을 만드는 경우에 해당하겠군요 예

[VC] #pragma pack 더 읽기"

[VC] #pragma warning

#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list…] )#pragma warning( push[ ,n ] )#pragma warning( pop )컴파일러 경고 메시지 관련 동작에 대한 선택적 수정을 허용해준다.경고-지시어(warning-specifier)는 다음의 것들 가운데 하나일 수 있다. 경고-지시어의 의미once지정한 메시지(들)을 오직 한 번만 표시한다. default경고 동작을 그것의 디폴트값으로 재설정(reset)한다. 이것은 디폴트로 꺼져 있는 경고를 켜는 효과도 가지고 있다. 이제 그

[VC] #pragma warning 더 읽기"

CVS 이야기

CVS 이야기 장우현 louis (at) mizi.co.kr 박용주     $Date: 2001/08/21 13:01:41 $ 여 러명이 어떤 공동의 작업을 수행할 때 유용하게 쓸 수 있는 CVS에 관한 이야기를 하고 있습니다. 이 글에서는 아직 CVS 관리에 관한 얘기는 없으며, 순수하게 사용하는 방법만 설명하고 있습니다. 글에 대한 문의사항이 있으면 언제라도 저에게 메일주시기 바랍니다. (참고로 앞으로는 어떻게 될지 모르겠지만,

CVS 이야기 더 읽기"

UML의 기초: 클래스 다이어그램

Donald Bell, IT Specialist, IBM  2007 년 5 월 22 일 The Rational Edge 발췌: UML 2의 새로운 구조 다이어그램 유형 중 가장 중요한 클래스 다이어그램은 소프트웨어 개발 사이클 동안 분석가, 비즈니스 모델러, 개발자, 테스터에 의해 사용됩니다. 이 글은 Unified Modeling Language(UML)에서 사용되었던 필수 다이어그램에 관한 기술자료 시리즈입니다. 시퀀스 다이어그램에 대해 설명했던 이전 기술자료에서는, UML

UML의 기초: 클래스 다이어그램 더 읽기"

[UML]시퀀스 다이어그램

  본 기사에서는 UML 시퀀스 다이어그램에 대한 자세한 소개와 UML 2.0 스펙에 포함된 몇가지 새로운 표기법을 소개한다. 그동안 여러분들이 들어왔던 UML의 새로운 스팩인 UML 2.0의 변경 사항들을 설명할 때가 되었다. 이 새로운 스팩은 중요하기 때문에, OMG의 UML 1.4 스팩에서 UML (UML 2)의 Adopted 2.0 Draft Specification으로 관심의 초점도 옮겨야 할 것이다. UML 2.0 Draft Specification은

[UML]시퀀스 다이어그램 더 읽기"

NSIS-Labels and Relative Jumps

1. Label Label의 경우 조건문에 의해서 실행되는 흐름을 바꿀때 Label이 붙어 있는 곳으로 보낼 수 있다. 주로 IfErrors, IfFileExists, StrCmp 등의 명령어를 사용할때 많이 사용한다. Label의 경우 지역적으로만 인식되므로 같은 function이나 section 내부에서만 사용할 수 있다. 또한 Label은 -, +, !, $ 또는 0-9 로 시작할 수는 없다. Label 을 사용하는 것은 다음과 같이 한다.

NSIS-Labels and Relative Jumps 더 읽기"

NSIS-Variables

1. 변수란? NSIS에서 변수는 항상 전역적인 범위를 가진다. 즉 지역 변수라는게 없다는 얘기다. 그리고 변수명의 길이는 최대 1024 로 제한된다. 이 보다 큰 길이의 변수명이 필요하면 NSIS 소스를 새로 빌드하면 된다. 하지만 일반인이 이 보다 긴 길이의 이름을 쓴다는 것은 의미가 없다. 10자 이상만 길어져도 타이핑 하기가 귀찮은데 말이다… ㅋㅋㅋ 사용자가 변수를 선언할때는 Var 이라는

NSIS-Variables 더 읽기"

NSIS-Sections

지금까지 이용했던 예제를 보면 전부 Section 이라는 항목이 있었을 것이다. function이나 page 처럼 이것도 마찬가지로 SectionEnd로 끝이 나는데, NSIS로 스크립트를 만들게 되면 무조건 한 개 이상의 section이 있어야 한다. 각 section은 명령어를 하나도 포함하지 않아도 되며, 스크립트에 있는 순서데로 실제로 실행이 된다. 그리고 ComponentText가 셋팅되어 있으면, 사용자가 각각의 section을 보여줄 것인지의 여부를 결정할 수 있다.

NSIS-Sections 더 읽기"

NSIS-Pages 에 대하여(2)

PageCallbacks 라는 기능을 알아 보도록 하겠다. PageCallbacks는 PageEx ~ PageExEnd 사이에서만 쓸 수 있는 기능으로 문법은 다음과 같다. ([creator_function] [leave_function]) | ([pre_function] [show_function] [leave_function])위에 보는 것과 같이 두 개의 함수 이름을 쓰면 creator와 leave 함수를 사용하겠다는 것이고, 세 개의 함수 이름을 쓰면 Page에 들어 가기 전에 실행되고 실제 보여 주는 함수 그리고 페이지를 벗어날 때

NSIS-Pages 에 대하여(2) 더 읽기"

NSIS-Pages 에 대하여(1)

NSIS 로 인스톨러를 만들면 각각의 페이지를 만드는 것이다. 각 페이지가 모여서 전체적인 인스톨 프로그램을 구성하게 된다. 주로 많이 접하는 페이지가 라이센스 동의에 대한 페이지나 인스톨할 디렉토리 선택등을 알 수 있다. 물론 사용자 구성/작성 페이지를 추가 할 수도 있다. 스크립트를 사용해서 이런 페이지의 순서를 변경할 수도 있으며, 특정한 정보를 제공할때 한 페이지에만 머무르도록 할 수도 있다.

NSIS-Pages 에 대하여(1) 더 읽기"

위로 스크롤