LINUX.ORG.RU

signal


0

0

Доброго времени суток.
Возникла небольшая проблема :
make
cc part_signal.c  -o part_signal
main.c: In function `set_signal':
main.c:25: warning: assignment from incompatible pointer type

Кусок "проблемного" кода :

void set_signal ( int sig, struct sigaction act, void (*handler)(int,siginfo_t *,void *) )
{
    sigemptyset ( &(act.sa_mask) );
    act.sa_handler = handler;
    act.sa_flags = SA_SIGINFO;
.... //25'я строка act.sa_handler = handler;

Смотрел в man sigaction и в bits/sigaction.h 
  - везде написанно (int,siginfo_t *,void *).

Почему компилятор сообщает о несоответствии типов?
Спасибо!
★★★

Вообще sa_handler это указатель на на функцию с параметрами типа (int). а sa_sigation это указатель на функцию с (int,siginfo_t *,void *). У тебя же к одному присваивается другое. Вот тут:
act.sa_handler = handler;

Chumka ★★★
()
Ответ на: комментарий от Chumka

спасибо ... долбанная невнимательность :(

fura13 ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.