Network Programming/프로세스 사이의 통신
1.Signal
커피살인마
2022. 7. 4. 21:39
Socket API : 네트워크 기술로 연결되어 있는 서로 다른 호스트 상에 존재하는 두 프로세스 사이의 통신을 가능하게 함.
운영체제는 다양한 사건에 대하여 시그널 번호를 정의하고 해당 사건이 발생했을 때 프로세스에게 시그널을 전달.
시그널이 프로세스로 배달되면 프로세스는 해당 시그널을 위하여 정의된 핸들러 루틴을 실행.
<signal.h>에 시그널이 양의 정수 매크로로 정의되어 있음. kill -l 명령어로 확인 가능.
sigaction 함수
int sigaction(int sig, const struct sigaction * act, struct sigaction * oldact );
sigaction 함수는 시그널 핸들러 정보를 관리하기 위해 sigaction이라는 구조체를 사용함.
struct sigaction
{
void(*sa_handler)(int);
sigset_t sa_mask;
int sa_flags;
}
void(*sa_handler)(int) : 시그널 발생 시 호출되는 핸들러 함수의 포인터
sa_mask : 핸들러를 실행 중일 때 발생하는 다른 시그널을 블록하기 위해 사용하는 마스크
sa_flag : 부가적인 기능을 위한 플래그