Effectuer des actions de fin d'exécution dans Go
Dans Go, vous pouvez exécuter des actions spécifiques lorsque votre programme se termine, notamment en réponse à une interruption déclenchée par l'utilisateur (Ctrl-C). Comprendre les signaux Unix peut être utile dans ces scénarios.
Capter le signal d'interruption
Pour capter le signal d'interruption (SIGINT), qui est déclenché lorsqu'un utilisateur appuie sur Ctrl- C, vous pouvez utiliser les packages os.Signal et signal.Notify comme ceci :
package main import ( "fmt" "os" "os/signal" ) func main() { fmt.Println("Program started!") // Create a channel for receiving signals sigchan := make(chan os.Signal, 1) // Notify the channel on receipt of the interrupt signal signal.Notify(sigchan, os.Interrupt) // Start a separate goroutine to handle the interrupt signal go func() { <-sigchan fmt.Println("Program interrupted!") fmt.Println("Performing cleanup actions...") // Perform end-of-execution actions // Exit the program cleanly os.Exit(0) }() // Start main program tasks }
Dans cet exemple, une goroutine est lancé pour gérer le signal d'interruption. Lorsque Ctrl-C est enfoncé, il imprime un message, effectue toutes les actions de nettoyage nécessaires (par exemple, vider les tampons, fermer les connexions) et appelle os.Exit(0) pour quitter le programme en douceur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!