Подскажите пожалуйста кто знает.
Проблема такая:
Приведенная ниже программа выполняется не корректно.
А именно - пользовательские данные (123456) в Caller не передаются,
а передается какой-то бред...
Что я не так сделал? Это пример из книг (Чан и Робачевский).
Система RH-7.0 (kernel 2.2.16-22(2.2.18.pre2), glibc-2.2.12)
p.s. Проверку на ошибки не напечатал специально для краткости.
static void Caller(int _signo, siginfo*evp, void*)
{
int XXX = evp->si_value.sival_int;
cerr<<XXX<<endl;
};
void main()
{
struct sigevent sigx;
struct sigaction sigv;
struct itimerspec val;
timer_t timer_id;
sigemptyset( &sigv.sa_mask );
sigv.sa_flags = SA_SIGINFO;
sigv.sa_sigaction = Caller;
sigaction( SIGUSR1, &sigv, 0);
sigx.sigev_notify = SIGEV_SIGNAL;
sigx.sigev_signo = SIGUSR1;
sigx.sigev_value.sival_int = 123456;
timer_create(CLOCK_REALTIME, &sigx, &timer_id);
val.it_value.tv_sec = 1;
val.it_value.tv_nsec = 0;
val.it_interval.tv_sec = 1;
val.it_interval.tv_nsec = 0;
timer_settime( timer_id, 0, &val, 0);
while(1);
timer_delete( timer_id );
}
iss
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум 1мс таймер (2007)
- Форум Таймер в отдельном потоке. (2012)
- Форум POSIX таймеры (2011)
- Форум Обёртка над Posix Timers (2016)
- Форум Про сигналы и исключения (2013)
- Форум Некорректная работа учебной программы обработки сигналов (2012)
- Форум проблема с чтением из FIFO (2024)
- Форум COM порт, буфер чтения заполняется частями... Язык чистый C (2014)
- Форум timer (2017)
- Форум timer [C++] (2009)