Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

Ctrl+C를 눌러도 종료되지 않는 C 프로그램 작성

<시간/>

이 섹션에서는 Ctrl + C 키로 종료할 수 없는 프로그램을 C로 작성하는 방법을 살펴보겠습니다.

Ctrl + C는 키보드 인터럽트를 생성하고 현재 프로세스의 실행을 중지합니다. 여기서 Ctrl + C 키를 누르면 메시지가 인쇄되고 실행이 계속됩니다. 이 기능을 사용하기 위해 C에서 신호 처리 기술을 사용할 것입니다. Ctrl + C를 누르면 SIGINT 신호가 생성됩니다. 다음 목록에는 다른 신호와 기능이 있습니다.

신호
설명
SIGABRT
비정상 종료를 나타냅니다.
SIGFPE
부동 소수점 예외를 나타냅니다.
시질
잘못된 명령을 나타냅니다.
SIGINT
프로그램에 전송된 대화형 주의 요청을 나타냅니다.
SIGSEGV
잘못된 메모리 액세스를 나타냅니다.
시그텀
프로그램에 전송된 종료 요청을 나타냅니다.


여기서는 표준 C 라이브러리 함수인 signal()을 사용하여 이러한 신호를 처리합니다.

예시 코드

#include <stdio.h>
#include <signal.h>
void sigint_handler(int signum) { //Handler for SIGINT
   //Reset handler to catch SIGINT next time.
   signal(SIGINT, sigint_handler);
   printf("Cannot be stopped using Ctrl+C \n");
   fflush(stdout);
}
main () {
   signal(SIGINT, sigint_handler);
   while(1) { //create infinite loop
   }
}

출력

Cannot be stopped using Ctrl+C
Cannot be stopped using Ctrl+C