네트워크

[네트워크] 시그널 핸들링

양원준 2023. 6. 11. 16:35
728x90

시그널이란?

특정 상황이 되었을 때 운영체제가 프로세스에게 해당 상황이 발생했음을 알리는 일종의 메시지

 

  • SIGALRM : alarm 함수호출을 통해서 등록된 시간이 된 상황
  • SIGINT : CTRL+C가 입력된 상황
  • SIGCHLD : 자식 프로세스가 종료된 상황

 

시그널 등록

특정 상황에서 운영체제로부터 프로세스가 시그널을 받기 위해서는 해당 상황에 대해서 등록의 과정을 거쳐야함

 

시그널 등록의 예

  • signal(SGICHLD, mychild);  자식 프로세스가 종료되면 mychild 함수를 호출해달라
  • signal(SIGALRM,timeout); alarm 함수호출을 통해서 등록된 시간이 지나면 timeout 함수 호출
  • signal(SIGINT, keycontrol); ctrl+c 가 입력되면 keycontrol 함수를 호출해달라

 

시그널이 등록되면, 함께 등록된 함수의 호출을 통해서 운영체제는 시그널의 발생을 알림

다만, signal 함수는 운영체제 별로 동작방식의 차이를 보임

 

 

 

 

 

 

 

728x90