책 : 뇌를 자극하는 윈도우즈 시스템 프로그래밍 파이프에는 두가지 종류가 있는데 이름없는 파이프(anonymous_pipe)와 이름있는 파이프(named_pip)가 있습니다. anonymous_pipe 같은 경우에는 프로세스에서 내부 즉, 자식 프로세스나 부모 프로세스와 통신을 할때 사용하는 것으로, 외부 프로세스와는 통신 할 수 없습니다. named_pipe 같은 경우에는 이름이 존재하기 때문에, 이름을 통하여 외부의 프로세스와 통신을 할 수 있다. 통신 방법은 아래와 같습니다. 아래는 서버와 클라이언트 코드입니다. 서버 더보기 #pragma warning(disable:4996) #include #include #include #include #define BUF_SIZE 1024 int CommTo..
책 : 뇌를 자극하는 윈도우즈 시스템 프로그래밍 일단 echo와 start를 구현하라는 미션이 주어졌습니다. 그래서 단순 echo와 start만 구현했는데, 책에서는 다른것도 구현이 되어있어서 코드가 상당히 달랐습니다.. 그래도 주어진 미션 부분은 비슷했어서 잘 구현된 거 같습니다. 내가 구현한 코드 더보기 #pragma warning(disable:4996) #include #include #include #define STR_LEN 256 #define CMD_TOKEN_NUM 10 TCHAR ERROR_CMD[] = _T("'%s'은(는) 실행할 수 있는 프로그램이 아닙니다.\n"); int CmdProcessing(int); TCHAR* StrLower(TCHAR*); void ECHO(TCHAR..
프로세스 실행 함수 CreateProcessW( 1) LPCWSTR lpApplicationName, 2) LPWSTR lpCommandLine, 3) LPSECURITY_ATTRIBUTES lpProcessAttributes, 4) LPSECURITY_ATTRIBUTES lpThreadAttributes, 5) BOOL bInheritHandles, 6) DWORD dwCreationFlags, 7) LPVOID lpEnvironment, 8) LPCWSTR lpCurrentDirectory, 9) LPSTARTUPINFOW lpStartupInfo, 10) LPPROCESS_INFORMATION lpProcessInformation ); 1 : 생성할 프로세스의 실행파일 이름을 인자로 전달한다. 경로..
책 : 뇌를 자극하는 윈도우즈 시스템 프로그래밍 시스템프로그래밍에서 가장 중요하면서도 기초인, 프로세스에 대해서 한번 얘기해보겠습니다. 일단 프로세스란, 실행되고 있는 프로그램을 의미합니다. 말 그대로 우리가 크롬이나 인터넷, 워드, 게임등의 프로그램을 실행한 상태가 바로 프로세스입니다. 이렇게 실행된 프로그램들은 CPU에 의해서 실행되게 되는데, 여기서 보통 우리는 하나의 프로그램만 실행하지 않기 때문에 멀티 프로세스 환경에서 실행하게 됩니다. 멀티 프로세스란, 하나의 프로세스만 처리하는 것이 아닌, 다른 프로세스의 일도 함께 처리하는 방식을 말합니다. 단, 여기서 주의해야 할 점은 하나의 CPU가 여러개의 프로세스를 함께 처리하는 것이지 한개의 CPU가 동시에 두개의 프로세스를 실행하는 것은 아닙니다..
보호되어 있는 글입니다.
https://www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net Stack STL를 활용하여 풀었습니다. 중요한 부분은 Check 부분인데, len 값과 bal.top()이 같을 경우에 더해주고, 나머지는 이미 더한 값이기 때문에 나눠줍니다. 이부분을 이해하는 것이 제일 중요했던 것 같습니다. #include #include #include using namespace std; stack bal; char len = 0; int total = 0; int t..
https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net Stack STL를 활용하여 풀었습니다. 길이를 활용하여 '(' 뒤에 바로 ')'가 나오면 stack의 사이즈를 체크하여 잘려진 만큼 더하였고, 그 이외의 경우에는 그냥 pop을 하여 막대기에서 제외하였습니다. 의사코드 더보기 if( c == '(' ){ 푸쉬하여 넣고 갯수를 하나 늘린다. 그리고 (를 넣엇다는 것을 체크해준다. } else if ( c == ')' ){ if( '('뒤에 바로 오는지 체크 ..
https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net Stack를 활용하여 문제를 해결하였습니다. 단순이 '(' 나 '[' 일때는 스택에 넣어주고, ')', ']'를 만나면 스택에 있는 것과 비교해서 있으면 pop 후 넘어가고 없으면 break 시켜서 판별하였습니다. #include #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.t..
- Total
- Today
- Yesterday
- 인제대학교
- 스레드풀
- 백준
- 멀티쓰레드
- 야경
- 보안
- 지뢰찾기
- 개발
- 링크드 리스트
- Select모델
- BFS
- Dreamhack
- 더블버퍼링
- 자료구조
- 알고리즘
- 컨퍼런스
- 레지스터
- 고양이
- 시스템보안
- 드림핵
- 워셜알고리즘
- queue
- 정보보안
- c++
- 학교
- STL
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |