| ||||||
/* Bu değişkene SIGALRM sinyal eylemcisi değer atayacak. */
volatile sig_atomic_t flag = 0;
int
main (void)
{
sigset_t block_alarm;
...
/* Sinyal maskesini ilklendirelim. */
sigemptyset (&block_alarm);
sigaddset (&block_alarm, SIGALRM);
while (1)
{
/* Bir sinyal gelmiş mi bakalım. Gelmişse değişkeni sıfırlayalım. */
sigprocmask (SIG_BLOCK, &block_alarm, NULL);
if (flag)
{
sinyal alınmamışsa yapılacak işlemler
flag = 0;
}
sigprocmask (SIG_UNBLOCK, &block_alarm, NULL);
...
}
}
| |||||||||