Memory Mapped File
파일을 마치 메모리인 것처럼 사용하는 기법
HANDLE WINAPI CreateFileMapping(__in HANDLE hFile, __in_opt LPSECURITY_ATTRIBUTES lpAttributes, __in DWORD flProtect, __in DWORD dwMaximumSizeHigh, __in DWORD dwMaximumSizeLow, __in_opt LPCTSTR lpName);
참고주소 : http://msdn.microsoft.com/en-us/library/aa366537(VS.85).aspx
디스크 상의 파일을 메모리처럼 사용 가능하도록 맵하는 데 필요한 핸들을 얻는다.
- hFile : 대상 파일의 핸들
- lpAttributes : 보안 정보
- flProtect : 접근형태. PAGE_READONLY, PAGE_WRITE, PAGE_WRITECOPY(Copy on Write) : 쓰기 수행시 별도의 복사본 생성.
- dwMaximumSizeHigh,
MapViewOfFile
프로세스
프로세스
실행중인 프로그램, 인스턴스
방잡기(공간적인 개념, spatial)
쓰레드
실제 일을 하는 것.(작업을 담당)
놀기(시간적인 개념, temporal)
멀티 쓰레드 : 하나의 프로세스가 복수 개의 쓰레드를 가짐.
프로세스 관련 함수.
UINT WINAPI WinExec(__in LPCSTR lpCmdLine, __in UINT uCmdShow);
참고주소 : http://msdn.microsoft.com/en-us/library/ms687393(VS.85).aspx
WIN16용 함수.
실행 파일을 현재 디렉터리-> 시스템 디렉터리-> 윈도우즈 디렉터리 -> PATH 순서대로 찾아 프로그램을 실행
프로그램이 GetMessage를 처음 호출할 때 리턴.
리턴 : 성공시 31보다 큰 값. 실패시 31이하의 오류코드값.
lpCmdshow : 실행 파일의 경로
uCmdshow : 보여줄 형태
BOOL WINAPI CreateProcess(__in_opt LPCTSTR lpApplicationName,__inout_opt LPTSTR lpCommandLine, __in_opt LPSECURITY_ATTRIBUTES lpProcessAttributes, __in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes, __in BOOL bInheritHandles, __in DWORD dwCreationFlags, __in_opt LPVOID lpEnvironment, __in_opt LPCTSTR lpCurrentDirectory, __in LPSTARTUPINFO lpStartupInfo, __out LPPROCESS_INFORMATION lpProcessInformation);
참고주소 : http://msdn.microsoft.com/en-us/library/ms682425.aspx
WIN32용 함수.
두번째 인수를 주로 사용(WinExec처럼 실행하기 위해 경로검색을 한다.)
함수를 수행하고 바로 리턴.
lpApplicationName : 프로그램 이름(사용 안해도 됨)
lpCommandLine : 실행 파일의 경로
lpProcessAttributes : 프로세스 보안 속성
lpThreadAttributes : 쓰레드 보안속성.
(예시 : 키 값이 3이면 프로세스 1,2를 모두 접근할 수 있다.)
bInheritHandles : 부모 핸들을 상속할 수 있는 가 여부 설정.
dwCreationFlags : 우선순위 클래스와 프로세스 생성 옵션 지정.
lpEnvironment : 환경변수 설정
lpStartupInfo : 실행할 프로그램의 시작 정보(CreateWindow), 위의 3개만 윈도우 응용 프로그램과 관련
STARTUPINFO 구조체 정보 :http://msdn.microsoft.com/en-us/library/ms686331(VS.85).aspx
lpProcessInformation : 생성된 프로세스의 정보를 얻음.
'컴퓨터 공부 > Win32 API 프로그래밍' 카테고리의 다른 글
[5월 11일 2교시] 동기화 1 (0) | 2009.05.11 |
---|---|
[5월 11일 1교시] 멀티 쓰레드 2 (0) | 2009.05.11 |
[5월 8일 2교시] 메모리 1 (0) | 2009.05.08 |
[5월 8일 1교시] 시스템 정보 2 (0) | 2009.05.08 |
[5월 7일 3교시] 시스템 정보 1 (0) | 2009.05.07 |