📄 timertest.c
字号:
#include <string.h>#include <stdio.h>#include <fcntl.h>#include <unistd.h>#include <stdlib.h>#include <sys/ioctl.h>#include <sys/select.h>#include <sys/time.h>#include <errno.h>#include "zaptel.h"int main(int argc, char *argv[]){ int fd; int x = 8000; int res; fd_set fds; struct timeval orig, now; fd = open("/dev/zap/timer", O_RDWR); if (fd < 0) { fprintf(stderr, "Unable to open timer: %s\n", strerror(errno)); exit(1); } printf("Opened timer...\n"); if (ioctl(fd, ZT_TIMERCONFIG, &x)) { fprintf(stderr, "Unable to set timer: %s\n", strerror(errno)); exit(1); } printf("Set timer duration to %d samples (%d ms)\n", x, x/8); printf("Waiting...\n"); gettimeofday(&orig, NULL); for(;;) { FD_ZERO(&fds); FD_SET(fd, &fds); res = select(fd + 1, NULL, NULL, &fds, NULL); if (res != 1) { fprintf(stderr, "Unexpected result %d: %s\n", res, strerror(errno)); exit(1); } x = -1; if (ioctl(fd, ZT_TIMERACK, &x)) { fprintf(stderr, "Unable to ack timer: %s\n", strerror(errno)); exit(1); } gettimeofday(&now, NULL); printf("Timer Expired (%d ms)!\n", (now.tv_sec - orig.tv_sec) * 1000 + (now.tv_usec - orig.tv_usec) / 1000); } exit(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -