[5월 7일 3교시] 시그널 2 #include<unistd.h> unsigned int alarm(unsigned int seconds); 지정된 시간 후 SIGALRM 시그널이 발생하도록 타이머 설정. alarm을 호출하면 이전 남은 시간값 리턴 후 다시 알람 설정. int pause(); 시그널이 전달될 때까지 프로세스의 실행을 지연. 시그널 세트 복수개의 시그널을 표현하는 데이터 형 sigset_t형 변수 시그널.. 컴퓨터 공부/Advanced UNIX System Programming 2009.05.07
[5월 7일 2교시] 시그널 1 시그널 프로세스들 사이의 비동기적 사건의 발생을 전달. 종류 SIGKILL : 핸들러 못바꿈. 프로세스를 강제로 종료. SIGSTOP : 핸들러 못바꿈. 프로세스를 SIGCONT가 올때까지 멈춤. SIGHUP : 터미널 단절, 데몬 프로세스 재수행. SIGABRT : abort함수의 호출. SIGALRM : 설정된 타이머에 의해 발생. SIGCHLD : 프로세.. 컴퓨터 공부/Advanced UNIX System Programming 2009.05.07
[5월 7일 1교시] 프로세스 관계 + 데몬 프로세스 BSD 터미널 로그인 1. init프로세스의 자식은 getty 프로그램 실행 2. getty프로그램 : login이름을 받고 login 프로그램 수행. execle("/usr/bin/login","login","-p",username,(char*)0,envp); 3. login - password를 입력받아 암호화(crypt)하여 /etc/passwd파일과 비교. - 패스워드가 맞으면 $HOME변경 및 터미널 소유자를 로그인 한 .. 컴퓨터 공부/Advanced UNIX System Programming 2009.05.07
[5월 6일 3교시] 메세지 크래커 + 공통 컨트롤 1 개별 메세지 함수 - 각 메세지(WM_CREATE, WM_DESTROY등)가 왔을 때 전용으로 처리하는 함수를 만듬. 스택 공간이 절약될 수 있다. 예시) LRESULT OnCreate(HWND hWnd, WPARAM wParam, LPARAM lPARAM); LRESULT WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lPARAM) { switch(iMessage) { case WM_CREATE: return OnCreate(hWnd,wParam,lParam); .. 컴퓨터 공부/Win32 API 프로그래밍 2009.05.06
[5월 6일 2교시] 서브클래싱 + 후킹 서브 클래싱 윈도우 프로시저로 보내는 메세지를 중간에 가로채는 기법 운영체제 ㅡㅡㅡㅡ→ 서브클래스 프로시저 ↑ | └ㅡㅡ윈도우 프로시저ㅡㅡ┘ 인스턴스 서브 클래싱 윈도우 생성 후 그 윈도우 하나에 대해서만 윈도 프.. 컴퓨터 공부/Win32 API 프로그래밍 2009.05.06
[5월 6일 1교시] 메세지2 메세지 처리 함수 BOOL PostMessage(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam); hWnd 메세지 큐에 iMessage를 집어 넣는다. 메세지를 처리하기 위한 쓰레드를 기다리지 않는다. 리턴 : 성공시 TRUE, 실패시 FALSE BOOL PostThreadMessage(DWORD idThread, UINT iMessage, WPARAM wParam, LPARAM lParam); 특정 쓰레드에 해당하는 메세지 큐에 i.. 컴퓨터 공부/Win32 API 프로그래밍 2009.05.06
[5월 6일 3교시] 시스템 정보 2 달력 시간 UTC 1970년 1월 1일 00:00:00시 이후 지나간 초 시간. #include<time.h> time_t time(time_t *calptr); 현재 1970년 1월 1일 00:00:00시 이후 지나간 초를 리턴. [문자열] ←asctimeㅡ [ struct tm ] ㅡstrftime→ [형식화된 문자열] ↑ .. 컴퓨터 공부/Advanced UNIX System Programming 2009.05.06
[5월 6일 2교시] 프로세스 제어 4 + 시스템 정보 1 (265~267쪽 소스 참고) wait3함수를 이용하여 종료된 프로세스의 자원정보를 얻을 수 있음. shell에서 'time 프로그램명'과 비슷함. system함수 #include<stdlib.h> int system(const char *cmdstring); 라이브러리 함수. fork, exec, waitpid함수로 구성. 리턴 - fork나 waitpid의 EINTR외의 리턴이면 -1 - exec가 실패하면 _exit(127) - .. 컴퓨터 공부/Advanced UNIX System Programming 2009.05.06
[5월 6일 1교시] 프로세스 제어 3 프로그램의 실행 int execve(const char *path, char *const argv[], char *const envp[]); 위의 함수만 시스템 콜. 나머지 5개 함수는 라이브러리 함수. int execl(const char *path, const char *arg0, ... const char *argn, (char*) 0); - 형태로 argument는 하나씩 - l : 리스트 형태의 명령 라인 인자. int execv(const char *path, char *const argv[]); -.. 컴퓨터 공부/Advanced UNIX System Programming 2009.05.06