전체 글 375

쉽게 구조체를 초기화 하는 방법.

출처 :http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=442 쉽게 구조체를 초기화 하는 방법. 가령 TSample sample; 이라는 구조체 변수가 있다면, 이것을 선언하면 전역영역이나 VCL 자손이라면 자동 0으로 초기화 되겠지만, 로컬영역이면 스택에 생성되 그 값을 보증할 수 없습니다. 그래서 ZeroMemory(&sample, sizeof(sample)); 식으로 선언후에 항상 초기화 코드가 따라 붙습니다. 이거 귀잖습니다. 이 문제는 구조체를 아래와 같이 생성자를 도입해서 해결할 수 있습니다. 예) typedef struct TSample_tag { int a; int b; double c; ; ;..

C C++ 2006.11.10

솔라리스 메모리 관리

출처 :http://superkkt.com/21 솔라리스는 리얼 메모리와 스왑 디바이스를 합친 크기를 메모리로 사용합니다. 예를들어 리얼 메모리가 1기가이고 스왑 디바이스 크기가 1기가라면 전체 메모리는 2기가 입니다. 메모리 할당이 어떻게 이루어지는 보기위해 아래 소스를 컴파일 해서 테스트를 해보겠습니다. 이 코드는 메모리 20메가를 할당 받고아무키나 누르면 할당 받은 메모리를 0으로 초기화 시킵니다. 다시 아무키나 누르면 할당받은 메모리를 반환하고 종료합니다. # cat test.c main() { char *a; a = malloc(20485760); // 20메가 할당 getchar(); // 키입력 기다림 memset(a, "0", 20485760); // 할당받은 메모리 0으로 초기화 getc..

Unix Linux 2006.11.10

vim 설정 및 활용

출처 :http://superkkt.com/86 :set ts=4 ( tab stop, tab을 4칸으로 설정 ) :set sw=4 ( shift width, 자동들여쓰기 시 4칸씩 들여쓰기 ) :set nobackup ( 백업파일을 만들지 않는다 ) :set cindent ( C형태의 들여쓰기 ) :set ruler ( 터미널 하단에 라인수/커서위치 표시 ) :set rulerformat=%70(% 로 원하는 만큼 들여쓰기, 내어쓰기(의 개수만큼 들여쓰기됨) 2. v로 비주얼모드에서 구간을 설정하고 Shift + > 또는 Shift +

Unix Linux 2006.11.10

쓰레드 프로그래밍 초간단 예제

출처 : http://superkkt.com/53 아래는 간단한 쓰레드 예제 코드이다. 쓰레드 프로그래밍을 할때 주의할 점은 각쓰레드간의 동기화와 임계영역 설정 등이다. 그리고 쓰레드 스케쥴링도 신경을 써야 한다. 아래 코드에서 usleep 부분을 주석처리하면 스케쥴링이 안되서 제대로 작동이 안된다. 그리고 두개의 쓰레드가 연관되어서 작업을 하는 경우(아래 예제)에는 서로 신호를 주고 받아서 상대방 쓰레드의 작업 여부를 확인하는것이 좋다. 그렇지 않을 경우 한쪽 쓰레드가 너무 빨리 실행되면 원하지 않는 결과가 나타날수도 있다. 쓰레드 스케쥴링 문제에 관한 문서는 아래 주소를 참조한다. http://www.joinc.co.kr/modules.php?name=News&file=article&sid=133&m..

C C++ 2006.11.10

GNU C compiler에 -ansi 옵션을 주었을때 발생하는 효과

출처 :http://superkkt.com/177 아래 내용은 /usr/include/features.h에서 발췌한 내용이다. 볼드로 처리된 부분이 중요함!! -ansi를 사용하면 __STRICT_ANSI__가 작동하기 때문에 POSIX 확장으로 처리된 부분들이 컴파일시 포함되지 않아서 많은 에러와 직면하게 된다. :-( /* These are defined by the user (or the compiler) to specify the desired environment: __STRICT_ANSI__ ISO Standard C. _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. _POSIX_SOURCE IEEE Std 1003.1. _POSIX_C_SOURCE ..

C C++ 2006.11.10

Windows 시스템레벨 개발자에게 도움이 되는 사이트

출처 :http://aitch.egloos.com/ Windows 시스템레벨 개발자에게 도움이 되는 사이트 여러가지 시스템 유틸리티와 소스를 얻을수 있는곳 http://www.osr.com/ http://www.sysinternals.com/ http://www.osronline.com/section.cfm?id=27 각종 디바이스 드라이버 자료와 소스가 있는곳 http://www.beyondlogic.org/ MS에서 수행하는 연구 프로젝트들.. http://research.microsoft.com/research/projects/ 각종 파일포맷에 대한 정보가 있는곳 http://www.wotsit.org/ WinDBG 최신버전 다운받는곳 http://www.microsoft.com/whdc/ddk/d..

Windows 2006.11.10

DLL의 모든 것

출처 :http://haje.kaist.ac.kr/~oedalpha/tips/WindowsProgramming/07-dll.txt Win32 아키텍처 완전 해부 ? DLL의 모든 것 이번 호에서는 DLL에 관한 전반적인 내용을 살펴보기로 한다. DLL을 사용하기 위해 알아야 할 일반적인 내용과 DLL의 생성 및 사용법을 알아보고, 필자가 코딩한 FTP 프로그램을 통해 어떻게 DLL을 exe 프로그램에서 사용할 수 있는지 살펴보겠다.마이크로소프트의 윈도우 오퍼레이팅 시스템을 사용하는 사람이라면 DLL, 즉 Dynamic Linking Library를 모르는 사람이 거의 없을 것이다. 필자가 사용하는 윈도우 NT 4.0의 winnt\system32 및 winnt\system 디렉토리에는 200개가 넘는 DL..

Windows 2006.11.10

여러종류의 데이타베이스 테스트 소스

출처 :http://www.howto.pe.kr/zboard/zboard.php?id=lecture&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&keyword=java&select_arrange=vote&desc=asc&no=161 [ 여러종류의 데이타베이스 테스트 소스 ] /* ODBC 시스템 설정: 제어판->ODBC->시스템 DSN->추가->Driver do Microsoft Access (*.mdb)->마침-> 데이타 원본이름: url의 연결 DB명 "testDB"->만들기->testDB.mdb->확인->확인->확인 */ importjava.sql.*; public class Test { public static void main ( String args [] ) { S..

Java 2006.11.07