Книга: Программирование для Linux. Профессиональный подход

Листинг 8.11. (itimer.c) Пример создания таймера

Листинг 8.11. (itimer.c) Пример создания таймера

#include <signal.h>
#include <stdio.h>
#include <string.h>
#include <sys/time.h>
void timer_handler(int signum) {
 static int count = 0;
 printf("timer expired %d timesn", ++count);
}
int main() {
 struct sigaction sa;
 struct itimerval timer;
 /* Назначение функции timer_handler обработчиком сигнала
    SIGVTALRM. */
 memset(&sa, 0, sizeof(sa));
 sa.sa_handler = &timer_handler;
 sigaction(SIGVTALRM, &sa, NULL);
 /* Таймер сработает через 250 миллисекунд... */
 timer.it_value.tv_sec = 0;
 timer.it_value.tv_usec = 250000;
 /* ... и будет продолжать активизироваться каждые 250
    миллисекунд. */
 timer.it_interval.tv_sec = 0;
 timer.it_interval.tv_usec = 250000;
 /* Запуск виртуального таймера. Он подсчитывает фактическое
    время работы процесса. */
 setitimer(ITIMER_VIRTUAL, &timer, NULL);
 /* Переход в бесконечный цикл. */
 while (1);
}

Оглавление книги


Генерация: 1.174. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз