네트워크
[네트워크] 시그널 핸들링
양원준
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