在linux的进程学习中,信号的小应用
#include
#include
#include
#include
#define msleep(x) usleep(x*1000) //定义毫秒的方法
int second=0,minute=0; //全局变量与局部变量的区别
void time(int signo)
{
alarm(1);
// int second=0,minute=0;
second++;
if ( second > 59 )
{
second=0;
minute++;
}
if ( minute > 59 )
{
minute=0;
}
// msleep(500);
printf("time %02d : %02d\r",minute,second); //printf("\rtime %02d : %02d",minute,second); 两种写法都可以
fflush(stdout); //此处需要注意的是printf函数是行缓冲的,后面无'\n'则不能刷新缓冲区,无法显示
// msleep(500);
// alarm(1); //alarm放在函数的前面或后面没有什么影响
}
int main()
{
// alarm(1);
// while(1)
// {
// printf("test\n");
alarm(1); //此函数在主函数的位置在while循环上面即可
// signal(SIGINT,time);
signal(SIGALRM,time);
raise(SIGALRM); //这样可以立即显示时钟
// alarm(1);
// sleep(1);
// }
while(1);
return 0;
}
阅读(1263) | 评论(1) | 转发(0) |