#include <signal.h>
void
termination_handler (int signum)
{
struct temp_file *p;
for (p = temp_file_list; p; p = p->next)
unlink (p->name);
}
int
main (void)
{
...
struct sigaction yeni_eylem, eski_eylem;
/* Yeni eylemi içeren yapıyı hazırlayalım. */
yeni_eylem.sa_handler = termination_handler;
sigemptyset (¥i_eylem.sa_mask);
yeni_eylem.sa_flags = 0;
sigaction (SIGINT, NULL, &eski_eylem);
if (eski_eylem.sa_handler != SIG_IGN)
sigaction (SIGINT, ¥i_eylem, NULL);
sigaction (SIGHUP, NULL, &eski_eylem);
if (eski_eylem.sa_handler != SIG_IGN)
sigaction (SIGHUP, ¥i_eylem, NULL);
sigaction (SIGTERM, NULL, &eski_eylem);
if (eski_eylem.sa_handler != SIG_IGN)
sigaction (SIGTERM, ¥i_eylem, NULL);
...
}