리눅스 Ctrl+c 및 종료 시그널 처리

인터럽트 종료 시그널 처리

 Linux application에서 인터럽트 종료 시그널 처리 예는 아래와 같다.


#include <sys/signal.h>

void sigint_handler( int signo)
{
    //
}


int main(int argc, char *argv[])
{

    signal(SIGINT, sigint_handler);
    signal(SIGTERM, sigint_handler);


    ...

    return 0;
}


1. signal 함수를 통해 시그널 핸들러 함수를 등록한다.

2. 인터럽트가 발생하면 핸들러 함수가 호출된다.

3. 핸들러 함수에서 해당 인터럽트를 처리한다.


기타 종료 시그널

닫혀 있는 소켓에 데이터를 쓰면,SIGPIPE 시그널이 발생해 application이 종료된다.

이때 application이 종료되지 않도록 하려면 아래와 같은 코드를 추가하면 된다.


signal(SIGPIPE, SIG_IGN);


댓글

이 블로그의 인기 게시물

쉽게 설명한 파티클 필터(particle filter) 동작 원리와 예제

아두이노(arduino) 심박센서 (heart rate sensor) 심박수 측정 example code

간단한 cfar 알고리즘에 대해

base64 인코딩 디코딩 예제 c 소스

바로 프로젝트 적용 가능한 FIR Filter (low/high/band pass filter )를 c나 python으로 만들기