#include <stdio.h>
#include <signal.h>
void myhandler(int signal)
{
}
int mysleep(int timeout)
{
struct sigaction act, oact;
act.sa_handler = myhandler;//自定义处理函数
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
sigaction(SIGALRM, &act, &oact); //信号处理函数
alarm(timeout);//设置闹钟
pause();
int ret = alarm(0);//清空闹钟
sigaction(SIGALRM, &oact, NULL);// 恢复默认信号处理动作
return ret;
}
int main()
{
while(1)
{
mysleep(3);
printf("use mysleep!\n");
}
signal(2, myhandler);
return 0;
}