当前位置: 技术问答>linux和unix
linux下的定时器
来源: 互联网 发布时间:2016-06-05
本文导语: 这段时间想写个WAV播放器,心情波动大,好久没有写 今天碰到一个问题,就是音频采样要16KHZ,在LINUX系统下我发现有有微秒级别的定时器,可是不够用 想问一下,有没有更小级别的定时器啊? | ...
这段时间想写个WAV播放器,心情波动大,好久没有写
今天碰到一个问题,就是音频采样要16KHZ,在LINUX系统下我发现有有微秒级别的定时器,可是不够用
想问一下,有没有更小级别的定时器啊?
今天碰到一个问题,就是音频采样要16KHZ,在LINUX系统下我发现有有微秒级别的定时器,可是不够用
想问一下,有没有更小级别的定时器啊?
|
你用定时器来干什么?
|
http://www.bitscn.com/linux/system_manage/200804/137671.html
试下这个posix_timer
试下这个posix_timer
|
http://www.bitscn.com/linux/system_manage/200804/137671.html
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)
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)