使用setitimer动态刷新终端显示时间
2015-06-22 11:45
447 查看
功能实现:使用真实计时器自动刷新终端,显示当前时间
main.c
[code]#include<stdio.h> #include<stdlib.h> #include<sys/time.h> #include<time.h> #include<signal.h> void sighandler(int signo) { time_t tt; time(&tt); struct tm *current_time = gmtime(&tt); printf("\033[1A"); // "\033["或"\e["表示操作屏幕,1A表示光标上移一行 printf("\e[K"); // 'K'表示清除该行 printf("%04d-%02d-%02d %02d:%02d:%02d\n",\ current_time -> tm_year + 1900, current_time -> tm_mon + 1, current_time -> tm_mday,\ current_time -> tm_hour + 8, current_time -> tm_min, current_time -> tm_sec); } void init_timer(int a, int b) { signal(SIGALRM, sighandler); struct itimerval tt; tt.it_interval.tv_sec = a; //每隔it_interval时间刷新一次时间 tt.it_interval.tv_usec = b; tt.it_value.tv_sec = a; //it_value时间后,发出第一个SIGALRM信号 tt.it_value.tv_usec = b; putchar(10); if(setitimer(ITIMER_REAL, &tt, NULL)) //设置真实计时器 { perror("set timer error"); exit(-1); } } int main(void) { init_timer(1, 0); while(1); return 0; }
相关文章推荐
- NSTimer知识点和倒计时的实现
- Java常量池详解之一
- Cocos2d-x引擎解析
- iOS定位原理和使用建议
- FreeRTOS学习笔记-1-概述
- URAL 1290. Sabotage (sortings)
- Coursera台大机器学习课程笔记4 -- Training versus Testing
- Android 下载文件及写入SD卡
- 用二分法求下面方程在(-10,10)之间的根:2x^3-4x^2+3x-6=0
- Hibernate缓存系列之详细测试
- groovy、java生成随机数32位
- 关于Core Location-ios定位
- java学习之旅04--第一个程序HelloWorld
- java提高篇(五)-----抽象类与接口
- Android:使用Gon解析解析Json
- js模块化开发----sea.js
- log4j中Pattern布局ConversionPattern详解
- mac下反编译apk
- __attribute__((packed))详解
- groovy grails 动态方法一例