#include <iostream>
#include <csignal> // 引入头文件
using namespace std;
static volatile int keepRunning = 1;
void sig_handler(int sig) {
if (sig == SIGINT) {
keepRunning = 0;
}
}
int main() {
signal(SIGINT, sig_handler); // SIGINT 信号由 InterruptKey 产生,通常是 CTRL +C 或者 DELETE
while (keepRunning) {
cout << "hahah" << endl;
}
cout << "Terminated by Ctrl+C signal." << endl;
}
命令行执行这个死循环程序,接收 Ctrl + C 停止。
可以作为 OpenCV waitKey
替代品。
注意:如果是多线程程序,signal(SIGINT, sig_handler)
需要写在想要终止的那个线程里,只写在 main
函数不行。