LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1539|回复: 2

麻烦帮忙看下定时器不成功的问题

[复制链接]
发表于 2010-9-14 20:18:21 | 显示全部楼层 |阅读模式
#include<stdio.h>
#include<unistd.h>
#include<signal.h>
void handler()
{
printf("hehe!\n");  //每隔5秒打印这个字符串。怎么执行了没有这个效果呢?什么输出都没有
}
main()
{
signal(SIGALRM,handler);
alarm(5);
}
发表于 2010-9-15 11:41:38 | 显示全部楼层
  1. #include<stdio.h>
  2. #include<unistd.h>
  3. #include<signal.h>
  4. void handler()
  5. {
  6.   printf("hehe!\n"); //每隔5秒打印这个字符串。怎么执行了没有这个效果呢?什么输出
  7. }
  8. main()
  9. {
  10.   signal(SIGALRM,handler);
  11.   alarm(5);
  12.   while (1)
  13.   {
  14.     sleep(10);
  15.   }
  16. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2010-9-16 20:08:56 | 显示全部楼层
alarm 只调用一次。想要循环调用需要在处理函数中再次发起 alarm。同时要保证你的程序没退出。

当然,事实上用 gmainloop 作循环,然后用 glib 的定时器更安全。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表