Menangkap Acara Ctrl-C dalam C
Dalam C , menangkap acara Ctrl-C (SIGINT) adalah penting untuk mengendalikan penamatan program yang anggun. Pustaka isyarat menyediakan mekanisme yang mudah untuk ini, tetapi kebolehpercayaannya berbeza-beza merentas pelaksanaan yang berbeza.
Untuk memastikan gelagat yang konsisten, anda disyorkan untuk menggunakan fungsi sigaction. Berikut ialah versi semakan kod Tom menggunakan 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); } 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; }
Kod ini mentakrifkan pengendali isyarat, my_handler, yang mencetak mesej dan keluar dari program apabila isyarat SIGINT (Ctrl-C) diterima. Fungsi sigaction mendaftarkan pengendali untuk isyarat SIGINT dan menetapkan bendera yang diperlukan untuk kelakuan yang betul.
Kini, apabila program berjalan dan Ctrl-C ditekan, ia akan menangkap isyarat dan memanggil pengendali, yang seterusnya mencetak mesej yang sesuai dan menamatkan program dengan anggun.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Acara Ctrl-C dengan Anggun dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!