- 使用
signal
机制, 来捕获CTRL + C
, 以使while(1)
类的循环正常终止,正常情况下使用ctrl + c
杀死程序,并不会调用析构函数,对有些库和框架可能会出问题1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#include <csignal> #include <iostream> static bool running = true; static void sigint_handler(int signum) { running = false; } int main() { signal(SIGINT, sigint_handler); while (running) { // your program logic here } std::cout << "Program ended normally." << std::endl; return 0; }