signals.c
author viric@llimona
Tue, 30 May 2006 01:10:00 +0200
changeset 53 667cd5966695
parent 28 a206baaa3ad5
permissions -rw-r--r--
Finer message processing - now only at file and screen output appear '\n'.

#include <signal.h> // Pels senyals
#include <string.h> // Pel memset
#include <assert.h>

void program_ignore_hup()
{
	struct sigaction my_action;
	int result;

	my_action.sa_handler = SIG_IGN;
	my_action.sa_flags = 0;
	memset(&my_action.sa_mask, 0, sizeof(my_action.sa_mask));

	result = sigaction(SIGHUP, &my_action, NULL);
	assert(result == 0);
}

void program_child_handler(void (*child_handler)(int))
{
	struct sigaction my_action;
	int result;

	my_action.sa_handler = child_handler;
	my_action.sa_flags = SA_NOCLDSTOP;
	memset(&my_action.sa_mask, 0, sizeof(my_action.sa_mask));

	result = sigaction(SIGCHLD, &my_action, NULL);
	assert(result == 0);
}

void program_handler(int signum, void (*handler)(int))
{
	struct sigaction my_action;
	int result;

	my_action.sa_handler = handler;
	my_action.sa_flags = 0;
	memset(&my_action.sa_mask, 0, sizeof(my_action.sa_mask));

	result = sigaction(signum, &my_action, NULL);
	assert(result == 0);
}