본문 바로가기

전체 글70

[C] Linux에서 System Log 사용 방법(openlog, syslog, closelog) 1. 개요 glibc(GNU C Library)는 system log를 남기기 위한 라이브러리를 제공하고 있다. syslog.h 에서 제공해 주는 system log를 남기는 방법을 정리합니다. 2. syslog.h syslog.h는 glibc에 포함되어 있기 때문에 따로 설치가 필요하지 않습니다. syslog man page에서 확인이 가능합니다. closelog, openlog, syslog, vsyslog - send messages to the system logger syslog를 사용하면 /var/log/syslog 파일에 쓰인다. 3. 함수 설명 3.1. openlog() 함수 원형 void openlog(const char *ident, int option, int facility); 설명.. 2023. 11. 10.
[C/C++]임시 변수 없이 두 개의 정수 값을 교환하기 1. 개요 c/c++에서 각 변수에 저장된 정수 값 x, y를 교환할 때 임시 변수를 사용하는데, 이 임시 변수 없이 교환하는 방법을 정리합니다. 2. 해결 곱셈과 나눗셈을 사용하여 이 문제를 해결합니다. 해결 과정은 다음과 같습니다. a에 a * b의 값을 저장 a = a * b b b에 a / b 값을 저장 a = a * b b = (a * b) / b a에 a / b 값을 저장 a = (a * b) / ((a * b) / b) b = (a * b) / b 결론 a = ((a * b) * b) / (a * b) == b b = (a * b) / b == a 3. 구현 위에서 해결한 과정을 코드로 구현해 봅니다. #include #include int main(int argc, char **argv) .. 2023. 11. 8.
[git] 명령어 모음(commit, push, pull, fetch 등등) 1. git 기본 명령어 모음 git을 자주 사용하는데, 자주 사용하지 않는 명령어의 경우에 다시 찾아봐야 하는 귀찮음이 있어서 여기에 정리합니다. 1.1. git init 로컬 Git 저장소를 만듭니다. ex) # git init 1.2. git status 현재 작업 중인 파일의 상태를 확인합니다. ex) # git status 1.3. git add [-A] [...] 현재 상태 추적, 파일의 변경 사항을 인덱스(Index)에 추가합니다. Git은 커밋하기 전에 인덱스에 먼저 커밋할 파일을 추가합니다. '-A' 옵션을 이용하여 전체 파일을 인덱스에 추가합니다. ex) # git add -A 1.4. git commit [-m ] 로컬 저장소에 변경 이력을 저장합니다. 현재 상태 저장하고 인덱스에 추.. 2023. 11. 7.
[윈도우10] 윈도우 단축키 윈도우 단축키 [가상 데스크톱] win + ctrl + d : 새로운 가상 데스크톱 생성 win + ctrl + 좌/위 방향키 : 가상 데스크톱 이동 win + ctrl + F4 : 가상 데스크톱 삭제 [윈도우 단축키] win + m : 모든 창 최소화 win + , : 윈도우창 보기 ctrl + alt + tab : 실행 중인 앱 보기 및 전환 win + tab : 실행 중인 앱 보기 및 전환 win + e : 파일 탐색기 열기 win + i : 설정 열기 win + shift + s : 화면 캡처 2020. 2. 25.
[WIN32 API] 더블 버퍼링(Double Buffering) 더블 버퍼링 win32 API에서 비트맵 파일을 화면에 뿌려줄 때, 계속해서 그리는 작업을 반복하기 때문에 비트맵 이미지가 깜빡이는 현상이 나타나게 됩니다. 이런 현상을 해결하기 위해서 더블버퍼링이라는 방법을 사용해야 합니다. 더블 버퍼링이란 메모리 공간 내에서의 출력이 더 빠르다는 점을 이용하여 메모리에 모든 출력 내용을 저장한 뒤 메인 HDC로 옮기는 기술입니다. 즉, 매번 출력 내용을 화면에 바로 그리지 않고, 그릴 내용을 버퍼에 다 그려준 뒤 이 버퍼를 화면에 그려주는 것입니다. 그림으로 보자면 다음과 같습니다. [그림 출처 : http://movefast.tistory.com/6] 코드 API에서 더블 버퍼링을 어떻게 사용하는지 코드를 보면서 설명하겠습니다. 전체 코드는 마지막에 압축파일로 제공.. 2018. 5. 3.
[WIN32 API]기본 class 작업 기본 class 작업 저번에 정리한 API 코드를 class화 하는 작업입니다. 일단 코드를 먼저 보도록 하겠습니다. class C_MYWIN { private: HINSTANCE m_hInstance; HWND m_hWnd; private: static C_MYWIN *m_pMyWin; public: static void createWin(); static C_MYWIN *getWin(); static void releaseWin(); private: C_MYWIN(); static LRESULT CALLBACK wndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK myProc(HWND hWnd, UINT mes.. 2018. 4. 25.