C에서 Ctrl-C 이벤트 가로채기
Ctrl-C 이벤트 가로채기는 프로그래밍에서 필요한 작업입니다. 특히 우아하게 응답하려는 경우에는 더욱 그렇습니다. 예상치 못한 중단.
Sigaction 사용
C에서는 sigaction 함수를 사용하여 신호를 처리하는 것이 더 안정적입니다. 구문은 다음과 같습니다.
int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
여기서:
Thomas가 제시한 예에서 sigaction 구조는 다음과 같습니다.
struct sigaction sigIntHandler; sigIntHandler.sa_handler = my_handler; sigemptyset(&sigIntHandler.sa_mask); sigIntHandler.sa_flags = 0;
여기서:
SIGINT 신호와 함께 이 sigaction 구조를 사용하세요.
sigaction(SIGINT, &sigIntHandler, NULL);
Handler 함수
마지막으로 응답하려면 핸들러 함수가 필요합니다. 신호에. 예제에서 my_handler는 메시지를 인쇄하고 프로그램을 종료합니다.
void my_handler(int s){ printf("Caught signal %d\n", s); exit(1); }
전체 코드
다음은 sigaction을 사용하여 Ctrl-C 이벤트를 캡처하는 전체 코드입니다. :
#include#include #include #include 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; }
sigaction을 사용하면 Ctrl-C를 안정적으로 잡을 수 있습니다. 사건을 인지하고 적절한 조치를 취합니다.
위 내용은 Sigaction 함수를 사용하여 C에서 Ctrl-C 인터럽트를 원활하게 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!