본문 바로가기
반응형

프로그래밍/운영체제5

C/C++ IPC인 mailslot에 대한 이해 Mail Slot은 프로세스간에 데이터를 주고받기 위한 방식중 하나입니다. 프로세스는 기본적으로 자신에게 할당된 메모리를 공유할 수 없기 때문에 여러가지 방법으로 데이터를 주고 받습니다. Mail Slot은 파일에 데이터를 적어 놓고 다른 프로세스들이 해당 파일에 접근해서 데이터를 읽어오도록 합니다. 따라서 파일을 읽을 수 있는 함수인 ReadFile() 함수와 데이터를 작성할 수 있는 WriteFile() 함수가 사용됩니다. MailSlot의 특징은 다음과 같습니다. 1. 단방향 통신이다. CreateMailslot() 함수로 보낼 메일 슬롯의 파일을 생성하고 WriteFile()함수를 통해 입력을 하게되고 CreateFile() 함수를 통해 파일을 열어 해당 내용을 읽어올 수 있는 ReadFile().. 2020. 1. 16.
C/C++ 뇌를 자극하는 윈도우 운영체제 프로젝트 2. 윤성우 저자께서 작성하신 "뇌를 자극하는 윈도우 운영체제"의 실습 2번입니다. C언어로 만들어져 있으며 다음과 같은 요구사항을 말하고 있습니다. 1. start 입력시 자식프로세스 생성. 2. start echo "문자열" 입력시, 자식프로세스 생성 후 해당 문자열 출력. 저는 C++을 사용해 구현했으며, Boost의 tokenizer를 사용했습니다. 만든 visualstudio 는 2019 버전을 사용했으며, 다른 버전 사용 시 echo_console.exe 파일 경로가 다를 수 있습니다. 소스코드는 아래와 같습니다. main.cpp #include #include #include #include #include #include #include using namespace std; typedef bas.. 2019. 12. 29.
C/C++ 프로세스 생성하기. C/C++에서 프로세스를 생성하는 방법은 다음과 같습니다. CreateProcess() 함수를 통해 생성하는 방법입니다. CreateProcess() 함수는 다음과 같이 정의되어 있습니다. BOOL CreateProcess{ LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURTIY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCTSTR lpCurrentDirectory, LPSTARTUPINFO lpStartupInfo, LPPROCESS_INFO.. 2019. 12. 29.
c/c++ TCHAR 정리. 요즘은 문자를 처리할 때 유니코드를 주로 사용합니다. WBCS라고 하며 모든 문자와 숫자를 2바이트로 처리합니다. 모든 프로그램이 유니코드를 사용하면 좋겠지만.... 실상은 아니죠. 초창기, 문자열 처리는 아스키코드로 사용해왔고, 아스키 코드는 1바이트로 구성됩니다. 그리고 초창기부터 사용되어 왔던 아스키코드를 지금도 사용하고 있죠. C/C++에선 유니코드를 사용함에 따라 문자열 처리를 1바이트와 2바이트 이 두개를 신경써서 해야 했고, 결론적으로 유니코드를 처리할 수 있는 자료형을 만들어 냅니다. 바로 앞에 w를 붙인 자료형이죠. 아래 자료형 선언은 헤더파일에 정의되어 있습니다. (정확히 말하자면 winnt.h에 있지만 이 해더파일을 Windows.h가 포함하고 있습니다.) char = 1바이트 wch.. 2019. 12. 29.
유니코드와 아스키코드(SBCS, MBCS, WBCS) 원래 코드를 짜면 일반적으로 영문, 숫자를 아스키코드로 컴퓨터는 인식합니다. 따라서 123char c = 65; printf("%c", c); //output : Acs 이런식으로 가능합니다. 이는 아스키코드를 사용해 문자든 숫자든 1바이트로 표현하기 때문인데, 1바이트는 8비트로0 ~ 256까지의 가지수를 표현할 수 있습니다. 하지만 아스키코드는 7비트만 사용합니다. 그 이유는 맨 앞의 1비트는 에러검출을 위해 사용하기 때문이죠. 이렇게 말이죠.... 하지만 시대가 발전하면서 다른 여러 나라들(한국, 일본, 중국, 아랍, 인도 등....)도 컴퓨터를 많이 사용하기 시작했고 그로인해 다른나라의 언어도 표현해야 했습니다. 하지만 1바이트로 문자를 표현하는 것은 자리가 없어서 2바이트로 표현하기로 합니다. .. 2019. 12. 11.
반응형

스킨편집 -> html 편집에서