C에서 Control-C 신호 가로채기
프로그래밍 영역에서는 흔히 사용되는 Ctrl 키와 같은 키보드 이벤트를 캡처해야 하는 경우가 많습니다. C는 일반적으로 프로그램 종료를 유발합니다. 이 문서에서는 C에서 Ctrl C 신호를 가로채는 방법, 즉 C에서 Ctrl C 신호를 가로채는 방법에 대해 설명합니다.
Ctrl C 이벤트 캡처
C에서는 Ctrl C를 캡처하는 두 가지 기본 방법이 있습니다. 이벤트: 신호 및 시그액션.
사용 sigaction
sigaction 기능은 다양한 구현에 걸쳐 더 큰 제어력과 이식성을 제공하므로 신호에 비해 더 안정적인 접근 방식을 제공합니다. sigaction을 사용하려면 다음 단계를 따르세요.
필요한 헤더 포함:
#include <signal.h> #include <stdlib.h> #include <stdio.h> #include <unistd.h>
신호 처리기 기능 정의:
void my_handler(int s){ printf("Caught signal %d\n",s); exit(1); }
이 핸들러에서는 Ctrl C를 눌렀을 때 수행할 작업을 지정할 수 있습니다. 눌렀습니다.
sigaction을 구성합니다.
struct sigaction sigIntHandler; sigIntHandler.sa_handler = my_handler; sigemptyset(&sigIntHandler.sa_mask); sigIntHandler.sa_flags = 0; sigaction(SIGINT, &sigIntHandler, NULL);
여기서 신호 처리기를 Ctrl C 신호(SIGINT)에 연결하고 신호 관련 설정을 지정합니다.
일시중지 프로그램:
pause();
이 함수는 프로그램이 Ctrl C를 포함한 신호를 기다리게 합니다.
예:
다음 예는 sigaction을 사용하여 Ctrl C를 캡처하는 방법을 보여줍니다. 이벤트:
#include <signal.h> #include <stdlib.h> #include <stdio.h> #include <unistd.h> void my_handler(int s){ printf("Caught signal %d\n",s); exit(1); } int main(int argc,char** argv) { struct sigaction sigIntHandler; sigIntHandler.sa_handler = my_handler; sigemptyset(&sigIntHandler.sa_mask); sigIntHandler.sa_flags = 0; sigaction(SIGINT, &sigIntHandler, NULL); pause(); return 0; }
이 프로그램을 실행하고 Ctrl C를 누르면 "Caught signal 2"가 인쇄되고 정상적으로 종료됩니다.
위 내용은 C에서 Ctrl C 신호를 어떻게 가로챌 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!