Linux操作系统下实时定时器posix_timer
浏览:14日期:2022-07-31
;其实Linux下还有一种高精度的定时器,那就是posix_timer。原理上来说,可以在变频的时候也使用rdtsc指令,因为CPU的频率我们也是知道的,变频的时候内核也是知道的。 下面是我的timer_create的例子,编译的时候要加上rt库,这是linux的realtime库: gcc -o test test.c#include #include #include #include #include #define rdtsc(low,high) __asm__ __volatile__('rdtsc' : '=a' (low), '=d' (high))timer_t tt;void handler (int sig, siginfo_t * extra, void *cruft)...{static last_i=0;unsigned int i, j;rdtsc(i,j);printf ('time:%u, %u, [%u] %uHZ ', j, i, i-last_i, (i-last_i)*10/1000000);last_i = i;}int main ()...{int i=0;sigset_t sigset;sigfillset (&sigset);sigdelset (&sigset, SIGRTMIN);sigprocmask (SIG_SETMASK, &sigset, NULL);struct sigaction sa;sigfillset (&sa.sa_mask);sa.sa_flags = SA_SIGINFO;sa.sa_sigaction = handler;if (sigaction (SIGRTMIN, &sa, NULL) < 0)...{perror ('sigaction failed ');exit (-1);}struct sigevent timer_event;struct itimerspec timer;timer.it_interval.tv_sec = 0;timer.it_interval.tv_nsec = 100 * 1000 * 1000;timer.it_value = timer.it_interval;timer_event.sigev_notify = SIGEV_SIGNAL;timer_event.sigev_signo = SIGRTMIN;timer_event.sigev_value.sival_ptr = (void *) &tt;if (timer_create (CLOCK_REALTIME, &timer_event, &tt) < 0)...{perror ('timer_create failed');exit (-1);}if (timer_settime (tt, 0, &timer, NULL) < 0)...{perror ('timer_settime failed');exit (-1);}while (i++ < 10)...{pause ();}return 0;}输出结果: time:166081, 1934350847, [1934350847] 2163HZtime:166081, 2120528291, [186177444] 1861HZtime:166081, 2306679576, [186151285] 1861HZtime:166081, 2494695630, [188016054] 1880HZtime:166081, 2680865389, [186169759] 1861HZtime:166081, 2867018473, [186153084] 1861HZtime:166081, 3053152230, [186133757] 1861HZtime:166081, 3239309935, [186157705] 1861HZtime:166081, 3425467261, [186157326] 1861HZtime:166081, 3611639266, [186172005] 1861HZ
标签:
Linux系统
相关文章:1. 神舟笔记本怎么进入bios设置u盘启动2. 小米笔记本Pro 2022将于7月4日发布:大师级屏幕3. 英特尔确认W790芯片组 将支持新一代至强工作站处理器4. 曝AMD 锐龙7000系列CPU和X670主板将于9月15日上市5. 360数科宣布正式加入FinOps阵营 finops是什么6. 华硕无畏Pro15 2022锐龙版/无畏Pro14锐龙版轻薄本预售7. 英特尔锐炫A770/A750独显价格与i7-12700K处理器类似8. AMD发布锐龙7000系列台式机处理器:基于“Zen 4”架构9. AMD锐龙700系列国行价格公布:16核心 售价仅5499元10. 微软Surface Studio3曝光 芯片支持2.4Ghz和5Ghz
热门推荐

- FinalShell和MobaXterm哪个好
- 1.小米笔记本Pro 2022将于7月4日发布:大师级屏幕
- 2.AMD锐龙线程撕裂者pro出四款 64核3995WX售价4万多
- 3.如何在asp.net核心中获取项目的根目录。Directory.GetCurrentDirectory()在Mac上似乎无法正常工作
- 4.一键卸载IE9 Beta 的方法
- 5.昂达Z490 SD4、Z490-HD价格599元起 支持11代酷睿
- 6.Vista中轻松实现数据备份还原
- 7.英伟达RTX 40系列显卡价格曝光 售价涨幅20%-100%
- 8.Vista下DIY个垃圾清理程序耍耍
- 9.i5-12400超频测试 成功让主板达到了5.24GHz
- 10.如何根据名称识别计算机病毒
