Valahogy így:
sigset_t w;
sigemptyset( &w );
sigaddset( &w, SIGALRM );
sigprocmask( SIG_BLOCK, &w, NULL );
alarm( 5 );
puts( "alarm(5)" );
int s;
if( !sigwait( &w, &s ) )
printf( "signal: %s (%d)\n", strsignal(s), s );
else
printf( "error: %d\n", errno );