2009/10/31 4

IPC - 02. 신호 처리, sigaction 안정적 신호 인터페이스

/* * http://sosal.tistory.com/ * made by so_Sal */ 01.에서 봤던 kill 명령어를 더 자세히 보겠습니다. #include #include int kill(pid_t pid, int sig); 인자만 봐도 쉽게 알 수 있듯, kill 명령어에는 해당되는 프로세스 id와 명시적 sig를 전달합니다. #include int pause(void); 신호가 발생할 때까지 프로그램의 실행을 정지합니다. 신호를 받으면 호출되는 신호 처리부의 행동을 재개합니다. * 안정적 신호 인터페이스 sigaction #include int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); **** struc..

IPC - 01. 프로세스 신호 signal 주고받기

/* * http://sosal.tistory.com/ * made by so_Sal */ 프로세스 통신방법엔 대표적인 방법 3가지. siganl (신호), pipe (파이프), socket (소켓) 이 있다. signal은 돌맹이 pipe는 편지 socket는 소포에 비유할 수 있다. signal이 돌맹이에 비유한다는 것은, 짱똘을 던지면 내가 너에게 화가났다. 조약돌을 던지면 내가 너를 사랑한다. 등등.. 행동에 대해 미리 약속을 해놓은 후 그 행동을 통하여 서로 대화를 나누는 방법이랄까? 가수들이 무대에서 무슨 손가락 모양을 하면서 비밀스런 애인에게 사랑을 전달하는 방법도 이에 포함되겠다 ^-^;; pipe나 socket에 대한 비유는..음.. 이글은 SIGNAL 관련 글이므로 생략하겠습니다 ㅋㅋ ..

System - 05. wait() 프로세스 동기화

/* * http://sosal.tistory.com/ * made by so_Sal */ fork 함수로 생성된 자식 프로세스는 독립적으로 실행됩니다. 따라서 부모프로세스는 자식프로세스가 하는 일을 알 수 없고, 변수의 공유나 자식프로세스가 계속 살아있는지 등에 대한 정보를 기본적으로는 알 수 없습니다. #include #include pid_t wait(int *stat_loc); //call by reference stat_loc은 종료된 프로세스의 pid 값을 리턴하여 보통 pid_t 변수에다 저장합니다. ex) int stat_loc; pid_t child_pid; child_pid = wait(&stat_loc); wait 시스템콜은 자식프로세스중 하나가 종료될 때까지 부모 프로세스를 기다리게..