[ 뇌를 자극하는 윈도우즈 시스템 프로그래밍 ] Chapter 18. 파일 I/O와 디렉터리 컨트롤
·
독서/[ 뇌를 자극하는 윈도우즈 시스템 프로그래밍 ]
01. 기본적인 파일 처리 함수들우리는 ANSI 표준 파일 관련 함수들을 이미 알고 있다. 그러나, Windows에서 제공하는 파일 입/출력 관련 함수들은 다양한 기능을 제공하기 때문에 알 필요가 있다.하지만, 단순히 파일에 데이터를 read/write 하는 것이 전부라면, ANSI 표준 함수가 호환성이 더 좋다.파일 열기 & 닫기파일을 개방(Open)하기 위해서 다음 함수를 사용한다.HANDLE CreateFile( LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFl..
[ 뇌를 자극하는 윈도우즈 시스템 프로그래밍 ] Chapter 17. 구조적 예외처리(SEH) 기법
·
독서/[ 뇌를 자극하는 윈도우즈 시스템 프로그래밍 ]
01. SEH(Structed Exception Handling)지금까지의 예제에서는 상당 부분의 예외처리를 생략하여 표현했다. 하지만, 실제로는 수많은 예외처리 코드를 필요로 한다. 보통의 개발자는 if문을 통해서 예외발생 유무를 확인하여, 이 결과에 따라 예외를 처리하게 된다. 만약, 예외를 처리하는 코드만을 따로 모아둘 수 있다면 코드 보기가 한결 수월해질 것이다. SEH를 이야기하기 전에, 예외 처리에 대해 알아보자. 예외와 에러의 차이는 무엇일까?문법적인 오류가 없지만, “test.txt” 파일이 존재하지 않아 프로그램이 실행되지 않는다고 가정해 보자. 이는 에러인가? 예외 발생인가? 이러한 상황을 에러로 보기는 어려울 것이다. 즉, 예외적 상황인 것이다.반면에, 메모리의 동적 할당 상황에서 메..
[ 뇌를 자극하는 윈도우즈 시스템 프로그래밍 ] Chapter 16. 컴퓨터 구조에 대한 네 번째 이야기
·
독서/[ 뇌를 자극하는 윈도우즈 시스템 프로그래밍 ]
01. 메모리 계층(Memory Hierarchy)컴퓨터에서 가장 중요한 장치를 꼽으라 한다면, 단연코 CPU라 대답할 것이다. 하지만, 개발자 입장에서는 메모리 또한 CPU 못지않게 중요하다. 왜냐하면, 가급적 높은 성능을 낼 수 있도록 프로그래밍 하기 위해서는 메모리의 특성을 잘 파악해야 하기 때문이다. 메모리의 범위와 종류이제 메모리라 불릴 수 있는 요소들을 나열해 보자. [메인(Main) 메모리]가장 먼저 떠올릴 수 있는 것은 메인 메모리인 램(RAM)이다. 더 정확하게 말한다면, D-RAM 계열의 메모리이다. 컴퓨터를 구입할 때 CPU 다음으로 중요하게 생각하는 것 중 하나이다. 거의 모든 컴퓨터가 메인 메모리로 램을 사용하기 때문에, 메인 메모리와 램을 동일시한다. [레지스터(Register)..
[ 뇌를 자극하는 윈도우즈 시스템 프로그래밍 ] Chapter 15. 쓰레드 풀링(Pooling)
·
독서/[ 뇌를 자극하는 윈도우즈 시스템 프로그래밍 ]
01. 쓰레드 풀에 대한 이해 쓰레드의 생성과 소멸은 시스템에 많은 부담을 준다. 우리가 현재 사용하고 있는 컴퓨터에서도 빈번한 쓰레드의 생성 및 소멸은 느낄 수 있을 정도의 속도 저하를 유발한다. 만약, 은행에서 은행원들이 손님의 수만큼 근무하고, 은행원 한 사람당 손님 한 명을 맡는다면, 비효율적이게 될 것이다. 이러한 상황만 봐도, 은행원을 쓰레드, 손님을 일이라 한다고 하면, 쓰레드의 풀을 유지하는 것은 성능 향상에 도움이 된다는 것을 알 수 있다. 즉, 쓰레드 풀의 기본 원리는 쓰레드의 재활용이다. 쓰레드 풀이 생성된 상태에서, 처리해야 할 일이 쓰레드의 수보다 많다면 일의 우선순위를 정하거나 순서대로 일을 처리하는 등의 풀 디자인을 생각할 수 있다. 02. 쓰레드 풀의 구현 이번 Chapter..