这里介绍使用c++ SIGNT的用法,即ctr+c后由操作系统发送一个中断信号给正在运行的进程,由中断函数选择其行为。这里仅仅给出SIGINT的例子,具体可参考这里。
#include <iostream>
#include <csignal>
bool flag = true;
void exit_while(int sig)
{
flag = false;
}
int main()
{
signal(SIGINT, exit_while);
while (flag)
{
std::cout << "while" << std::endl;
}
std::cout << std::endl;
int i = 10;
while (i-- > 0)
std::cout << "exit while" << std::endl;
return 0;
}
crt+c输出样例:
while
while
while^C
exit while
exit while
exit while
exit while
exit while
exit while
exit while
exit while
exit while
exit while