мне нужна переменная из которой я бы мог брать время от включения в милисекундах
вот пример
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <time.h>
#include <unistd.h>
struct sigevent sig_spec;
int flag_stop = 0;
unsigned long int ms_count = 0;
struct itimerspec timer_setting;
timer_t timer_h;
void timer_signal(int sig)
{
ms_count++;
}
void quit_signal()
{
flag_stop = 1;
}
int main(int argc, char *argv[])
{
signal(SIGUSR1,timer_signal);
signal(SIGINT, quit_signal);
sig_spec.sigev_notify = SIGEV_SIGNAL;
sig_spec.sigev_signo = SIGUSR1;
if (timer_create(CLOCK_REALTIME, &sig_spec, &timer_h) < 0)
{
printf("TIMER: timer_create error\n");
return 0;
}
timer_setting.it_value.tv_sec = 0;
timer_setting.it_value.tv_nsec = 1000000;
timer_setting.it_interval.tv_sec = 0;
timer_setting.it_interval.tv_nsec = 1000000;
if (timer_settime(timer_h, 0, &timer_setting,NULL) < 0)
{
printf("TIMER: timer_settime error\n");
return 0;
}
while(flag_stop == 0)
{
sleep(1);
}
timer_delete(timer_h);
printf("MS: %lu\n",ms_count);
return 1;
}
gcc main.c -o main -lrt
и вот чё получается, например:
sh-3.00$ time ./main
MS: 13264
real 0m17.023s
user 0m0.005s
sys 0m0.005s
куда делось ~4 секунды непонятно, всё отработало мгновенно
неужто за 17 секунд такая ошибка набежала...
как в линухе завести чёткий таймер на милисекунду
и без работы напрямую с hpet ибо ядро 2.6.13 (или 15, непомню) и там он вроде как есть (в логах чёто есть) но даже примеры из доков ядра не пашут.
P.S. в офтопике при использовании мультимедиа таймеров милисекунда тикает чётко (+- 10 микросекунд) на такойже матери
Ответ на:
комментарий
от tailgunner
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от tailgunner
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от tailgunner
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум POSIX таймеры (2011)
- Форум Таймер в отдельном потоке. (2012)
- Форум Подскажите (sigaction + timer) (2001)
- Форум timer_settime-проблема с переодическим таймером. (2005)
- Форум Таймеры в Си (2015)
- Форум Обёртка над Posix Timers (2016)
- Форум Помогите разобраться с сигналами (2003)
- Форум Помогите разобраться с программой! (2020)
- Форум Переход от LinuxThreads к NTPL (2004)
- Форум Обработчик таймера для переключения контекста (2016)