정리 작업을 위한 Ctrl C 캡처: "지연" 접근 방식
Go에서 신호를 처리하면 개발자가 다음을 포함한 특정 이벤트에 응답할 수 있습니다. 프로그램 종료. 일반적인 시나리오 중 하나는 Ctrl C(SIGINT) 신호를 캡처하여 프로그램이 종료되기 전에 필요한 정리 작업을 수행하는 것입니다.
신호 처리를 위한 채널 생성
SIGINT 신호의 경우 os/signal 패키지를 활용합니다. 먼저 신호를 수신할 채널을 만듭니다.
c := make(chan os.Signal, 1)
Ctrl C 신호 구독
다음으로 SIGINT 신호를 수신하도록 채널에 알립니다.
signal.Notify(c, os.Interrupt)
Signal용 고루틴 시작 처리
신호를 지속적으로 처리하기 위해 고루틴을 만듭니다.
go func(){ for sig := range c { // sig is a ^C, handle it } }()
정리 작업 수행
고루틴 내에서 다음을 정의할 수 있습니다. Ctrl C를 누를 때 수행될 정리 작업입니다. 여기에는 디스크에 데이터 쓰기, 기본 설정 저장 또는 프로그램이 종료되기 전에 완료되어야 하는 기타 작업이 포함될 수 있습니다.
프로그램을 종료하고 Ctrl C 입력에 따라 정보를 인쇄하는 방식은 다음과 같습니다. 유연하며 프로그램의 특정 요구 사항에 따라 달라집니다.
위 내용은 깨끗한 프로그램 종료를 위해 Go에서 Ctrl C 신호를 어떻게 적절하게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!