author | viric@llimona |
Fri, 16 Jun 2006 18:45:24 +0200 | |
changeset 62 | 39bf7ecd7b21 |
parent 28 | a206baaa3ad5 |
permissions | -rw-r--r-- |
26 | 1 |
#include <signal.h> // Pels senyals |
2 |
#include <string.h> // Pel memset |
|
3 |
#include <assert.h> |
|
4 |
||
5 |
void program_ignore_hup() |
|
6 |
{ |
|
7 |
struct sigaction my_action; |
|
8 |
int result; |
|
9 |
||
10 |
my_action.sa_handler = SIG_IGN; |
|
28
a206baaa3ad5
Added main rutines for killing and waiting for childs' dead.
viric@mandarina
parents:
26
diff
changeset
|
11 |
my_action.sa_flags = 0; |
26 | 12 |
memset(&my_action.sa_mask, 0, sizeof(my_action.sa_mask)); |
13 |
||
14 |
result = sigaction(SIGHUP, &my_action, NULL); |
|
15 |
assert(result == 0); |
|
16 |
} |
|
17 |
||
18 |
void program_child_handler(void (*child_handler)(int)) |
|
19 |
{ |
|
20 |
struct sigaction my_action; |
|
21 |
int result; |
|
22 |
||
23 |
my_action.sa_handler = child_handler; |
|
24 |
my_action.sa_flags = SA_NOCLDSTOP; |
|
25 |
memset(&my_action.sa_mask, 0, sizeof(my_action.sa_mask)); |
|
26 |
||
27 |
result = sigaction(SIGCHLD, &my_action, NULL); |
|
28 |
assert(result == 0); |
|
29 |
} |
|
28
a206baaa3ad5
Added main rutines for killing and waiting for childs' dead.
viric@mandarina
parents:
26
diff
changeset
|
30 |
|
a206baaa3ad5
Added main rutines for killing and waiting for childs' dead.
viric@mandarina
parents:
26
diff
changeset
|
31 |
void program_handler(int signum, void (*handler)(int)) |
a206baaa3ad5
Added main rutines for killing and waiting for childs' dead.
viric@mandarina
parents:
26
diff
changeset
|
32 |
{ |
a206baaa3ad5
Added main rutines for killing and waiting for childs' dead.
viric@mandarina
parents:
26
diff
changeset
|
33 |
struct sigaction my_action; |
a206baaa3ad5
Added main rutines for killing and waiting for childs' dead.
viric@mandarina
parents:
26
diff
changeset
|
34 |
int result; |
a206baaa3ad5
Added main rutines for killing and waiting for childs' dead.
viric@mandarina
parents:
26
diff
changeset
|
35 |
|
a206baaa3ad5
Added main rutines for killing and waiting for childs' dead.
viric@mandarina
parents:
26
diff
changeset
|
36 |
my_action.sa_handler = handler; |
a206baaa3ad5
Added main rutines for killing and waiting for childs' dead.
viric@mandarina
parents:
26
diff
changeset
|
37 |
my_action.sa_flags = 0; |
a206baaa3ad5
Added main rutines for killing and waiting for childs' dead.
viric@mandarina
parents:
26
diff
changeset
|
38 |
memset(&my_action.sa_mask, 0, sizeof(my_action.sa_mask)); |
a206baaa3ad5
Added main rutines for killing and waiting for childs' dead.
viric@mandarina
parents:
26
diff
changeset
|
39 |
|
a206baaa3ad5
Added main rutines for killing and waiting for childs' dead.
viric@mandarina
parents:
26
diff
changeset
|
40 |
result = sigaction(signum, &my_action, NULL); |
a206baaa3ad5
Added main rutines for killing and waiting for childs' dead.
viric@mandarina
parents:
26
diff
changeset
|
41 |
assert(result == 0); |
a206baaa3ad5
Added main rutines for killing and waiting for childs' dead.
viric@mandarina
parents:
26
diff
changeset
|
42 |
} |