Merakam Ctrl C untuk Operasi Pembersihan: Pendekatan "Tunda"
Mengendalikan isyarat dalam Go membolehkan pembangun bertindak balas kepada peristiwa tertentu, termasuk penamatan sesuatu program. Satu senario biasa ialah menangkap isyarat Ctrl C (SIGINT) untuk melakukan sebarang operasi pembersihan yang diperlukan sebelum program keluar.
Mencipta Saluran untuk Pengendalian Isyarat
Untuk menangkap Isyarat SIGINT, kami menggunakan pakej os/isyarat. Mula-mula, kami mencipta saluran untuk menerima isyarat:
c := make(chan os.Signal, 1)
Melanggan Isyarat Ctrl C
Seterusnya, kami memberitahu saluran untuk mendengar isyarat SIGINT:
signal.Notify(c, os.Interrupt)
Memulakan Goroutine untuk Isyarat Pengendalian
Kami mencipta goroutine untuk mengendalikan isyarat secara berterusan:
go func(){ for sig := range c { // sig is a ^C, handle it } }()
Melaksanakan Operasi Pembersihan
Dalam goroutine, kami boleh menentukan operasi pembersihan yang akan dilakukan apabila Ctrl C ditekan. Ini mungkin termasuk menulis data pada cakera, menyimpan pilihan atau apa-apa tugas lain yang perlu diselesaikan sebelum atur cara keluar.
Cara anda menyebabkan atur cara anda menamatkan dan mencetak maklumat berdasarkan input Ctrl C ialah fleksibel dan bergantung pada keperluan khusus program anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Isyarat Ctrl C dengan Anggun dalam Go untuk Penamatan Program Bersih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!