C++ 크로스 플랫폼 에러 처리 시스템 설계 ✅ 개요 Windows의 GetLastError()와 같은 방식의 에러 핸들링 시스템을 C++로 구현합니다. 이 시스템은 다음을 포함합니다: Thread Local Storage 기반 에러 저장 프로젝트 공통 에러 코드 정의 에러 메시지 출력 (다국어 지원 가능) 에러 로그 기록 운영체제의 시스템 에러 코드 매핑 1. ❌ 에러 코드 정의 - ErrorCode.hppenum class ErrorCode { OK = 0, UNKNOWN, INVALID_PARAM, ..
리눅스 타이머 방식 정리 및 비교표1. 리눅스에서 사용 가능한 타이머 방식리눅스에서는 다양한 방식으로 주기적인 작업을 수행할 수 있습니다. POSIX 타이머, sleep, pthread, alarm 등 여러 방식이 존재하며, 각각의 방식은 성능과 사용 용도에 따라 적합성이 다릅니다.2. 리눅스 타이머 방식 및 예제 코드1. POSIX 타이머 (timer_create)설명: 고정밀 타이머로, SIGEV_THREAD 옵션을 사용해 타이머 만료 시 별도의 스레드에서 콜백이 실행됩니다.#include #include #include void timer_handler(union sigval sv) { printf("Timer expired! Data sent.\n");}void create_timer() {..
SetTimer vs Thread Sleep vs CreateTimerQueueTimer 비교 윈도우 애플리케이션에서 일정 시간 간격으로 작업을 수행하는 방법으로 SetTimer, Thread + Sleep, CreateTimerQueueTimer가 자주 사용됩니다. 각각의 방식은 동작 방식과 장단점이 다르며, 상황에 따라 적합한 방식이 달라집니다. 1. SetTimer 동작 방식: 일정 시간 간격으로 WM_TIMER 메시지를 메시지 큐에 추가하여 타이머 이벤트를 발생시킵니다. 메인 스레드에서 타이머 콜백이 처리됩니다. SetTimer(hWnd, 1, 1000, NULL); // 1초마다 WM_TIMER 발생switch (message) { case WM_TIM..
CFileMon 클래스 설계 및 구현 개요 CFileMon 클래스는 특정 파일의 변경 사항을 감지하며, Windows와 POSIX 환경 모두에서 작동하도록 설계되었습니다. Named Mutex를 활용하여 다중 프로세스 동기화를 보장하며, 파일이 삭제되거나 수정되는 상황에 안정적으로 대응합니다. 주요 기능 Windows 및 POSIX 환경 지원 Named Mutex를 활용하여 다중 프로세스 동기화 파일 변경 시 해시를 비교하여 변경 여부 감지 파일이 삭제되거나 접근 불가한 경우 예외 처리 주기적인 파일 상태 확인 (스레드 기반 구현) 플랫폼별 구현 ..
C++ Thread Local Storage (TLS) and GetLastError 1. TLS 설명 C++에서 TLS (Thread Local Storage)는 각 스레드가 고유한 변수를 저장하고 접근할 수 있게 해주는 메커니즘입니다. TLS는 다중 스레드 환경에서 각 스레드가 서로 독립적으로 데이터를 저장할 수 있도록 도와줍니다. thread_local 키워드를 사용하여 각 스레드마다 별도의 변수를 선언할 수 있습니다. 스레드 간 경합을 피할 수 있으므로 동기화 없이 안전한 데이터 처리가 가능합니다. 2. TLS 예제 코드 #include #include thread_local int counter = 0;void..
프로세스(Process)와 쓰레드(Thread)는 둘 다 동시에 여러 작업을 수행하는데 사용되는 개념이지만, 몇 가지 중요한 차이점이 있습니다. 독립성: 프로세스: 각 프로세스는 독립된 메모리 공간을 가지며, 한 프로세스의 오류가 다른 프로세스에 영향을 미치지 않습니다. 각 프로세스는 운영체제에 의해 별도로 관리됩니다. 쓰레드: 쓰레드는 프로세스 내에서 실행되는 여러 실행 흐름으로, 같은 프로세스 내의 쓰레드들은 같은 메모리 공간을 공유합니다. 따라서 쓰레드 간에는 데이터를 쉽게 공유할 수 있습니다. 자원 사용: 프로세스: 각 프로세스는 운영체제로부터 독립적인 자원을 할당받습니다. 이로 인해 프로세스 간 통신이나 데이터 공유에는 별도의 메커니즘이 필요합니다. 쓰레드: 쓰레드는 같은 프로세스 내의 다른 쓰..
- Total
- Today
- Yesterday
- Windows
- 리눅스
- C
- 성산블루버블
- C#.NET
- 스쿠버다이빙
- 블루버블다이브팀
- 서귀포
- 블루버블다이빙팀
- PowerShell
- C# 고급 기술
- 스쿠버 다이빙
- C++
- 윈도우
- 울릉도
- Thread
- 암호화
- 현포다이브
- 서귀포블루버블
- ip
- OpenSource
- 블루버블
- 패턴
- 제주도
- C#
- Linux
- CMake
- DLL
- 외돌개
- Build
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |