Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Тестовые примеры / ch9 / posix_timer2
.C#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "timer.h"
void callme( int signo, siginfo_t* evp, void* ucontext )
{
long sec, nsec;
time_t tim = time(0);
cerr << "timer Id: " << evp->si_value.sival_int
<< ", signo: " << signo << ", " << ctime(&tim);
}
int main()
{
timer t1 ( SIGINT, callme, 1 );
timer t2 ( SIGUSR1, callme, 2 );
timer t3 ( SIGUSR2, callme, 3 );
if (!t1 || !t2 || !t3 ) return 1;
t1.run( 2, 0, 2, 0 );
t2.run( 3, 500000000, 3, 500000000 );
t3.run( 5, 0, 5, 0 );
/* wait for timers to expire */
for ( int i =0 ; i < 10; i++)
{
/* do some work and before timers expire */
pause();
cerr << " t1: " << t1 << endl;
cerr << " t2: " << t2 << endl;
cerr << " t3: " << t3 << endl;
}
cerr << "t1 overrun: " << t1.overrun() << endl;
cerr << "t2 overrun: " << t2.overrun() << endl;
cerr << "t3 overrun: " << t3.overrun() << endl;
return 0;
}