본문 바로가기

전체 글328

4-2. Process ID & Handle PROCESS ID란? 프로세스가 만들어지면 2개의 핸들이 생성된다. PROCESS KERNEL OBJECT (PKO), THREAD KERNEL OBJECT (TKO) TKO가 생기는 이유는 프로세스 생성 시 주 스레드가 자동으로 생성되기 때문 PID를 구하는 방법 1. 자신의 프로세스 ID 구하기 GetCurrentProcessId() : 내 PROCESS ID 구하기 GetCurrentThreadId() : 내 THREAD ID 구하기 #include #include using std::cout; using std::endl; int main() { DWORD pid = GetCurrentProcessId(); cout 2022. 9. 13.
4-1. Kernel Object 윈도우 핸들 A라는 프로세스가 윈도우를 만들어서 3000번이라는 핸들을 받았다고 가정한다. 이 3000번이라는 번호를 B 프로세스에게 전달한다고 했을 때 B 프로세스가 A 프로세스가 만든 핸들을 조작할 수 있을까? OK 윈도우 핸들은 모든 프로세스에 개방적이다. 그렇다면 CreatePen의 반환값인 Pen 객체는 어떨까? CreatePen의 반환값으로 나온 Pen도 같은 방법으로 B 프로세스에 전달한다면? B 프로세스가 A 프로세스가 만든 펜의 핸들을 조작할 수 있을까? NO GDI 핸들은 그걸 만든 하나의 프로세스만 사용할 수 있다. 그럼 어떤건 되고 어떤 건 안되는데 이걸 어떻게 판별해야 할까? 이 접근권한은 Object Category라는 카테고리로 분류된다. Object Category User .. 2022. 9. 13.
3장-5. 재귀 함수 재귀란 무엇인가? for문이나 while문 이외에 반복을 구현하는 또 다른 방법 자신의 정의 내에서 자기 자신을 호출하는 것 재귀는 반복적인 작업을 수행하는데 명쾌하고 강력한 대안을 제시한다! 계승 함수 양의 정수 n의 계승(n!)는 1부터 n까지의 정수곱이다. n = 0이라면 n!는 1로 정의된다. 더 일반적으로는 n >= 0이다. 5! = 5 x 4 x 3 x 2 x 1 = 120 이런 n!를 나타내기 위해 factorial(n) 이라는 표현을 사용한다. 계승 함수는 재귀적인 공식을 제시하는 방법으로도 정의된다. factorial(5) = 5 * (4 * 3 * 2 * 1) = 5 * factorial(4) 그래서 일반적으로 양에 정수에 대해 factorial(n)은 n * factorial(n-1).. 2022. 9. 13.
1주차-1. 2979번 트럭 주차, 카운팅 배열에 대한 개념 2979번 트럭 주차 문제 문제의 요지는 주차된 차량 별 3가지 요금을 입력 받아서,주차된 차량이 몇 대냐에 따라 1대 당 요금을 다르게 책정하고최종적으로 발생하는 비용을 물어보는 문제였다. 먼저 무작정 풀어보기 값을 입력 받고, for문의 범위를 정하기 위해 최대 / 최소를 구하는 로직 int A, B, C; cin >> A >> B >> C; int arr[3][2] = {}; int min = 101, max = -1; for (int i = 0; i > arr[i][j]; if (arr[i][j] >= max) max = arr[i][j]; if (arr[i][j] > A >> B >> C; int sum = 0;.. 2022. 9. 12.