커피살인마 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 : 부가적인 기능을 위한 플래그