Reduzir o problema à sua essência torna mais fácil de compreender
Código:
#include <time.h>
#define BOGUSTID 9999
timer_t tid;
#if WANT_SEG_FAULT
tid = (timer_t) BOGUSTID
#else
int tval=BOGUSTID;
tid = (timer_t) &tval;
#endif
O cabeçalho correto está sendo incluído, mas uma hipótese que está sendo feito tid é capaz de armazenar um valor, conforme acima indicado. Geralmente esta hipótese é errado timer_t como é especificado para ser um tipo opaco em
POSIX.1. Na maioria das versões do
GNU/Linux, timer_t é, na realidade, definido pela
Código:
#define timer_t void *
No seu exemplo você está tentando coisas em um void * 9999 - o que não é relativa.
BTW, o seu contorno é defeituoso também. tid não está definido para 9999, mas, para o endereço de tval.