/**
*@brief解决linux下,让sleep提前返回的实现方式
* 解决方案:通过信号方式。
* 每当按下 Ctrl+C时,sleep都会提前退出
*/
#include <iostream>
#include <signal.h>#include <errno.h>
void sig_int(int n)
{
std::cout << "sig = " << n << std::endl;
}
int main()
{
signal(SIGINT, &sig_int);
for (int i = 0; ; i++)
{
errno = 0;
sleep(3);
std::cout << "i = " << i << " errno=" << errno << std::endl;
}
return 0;
}