diff options
[SP/P08] Solved exercises
1 files changed, 34 insertions, 0 deletions
| -rw-r--r-- | Year 3/System programming/Practice08/ex6.c | 34 |
diff --git a/Year 3/System programming/Practice08/ex6.c b/Year 3/System programming/Practice08/ex6.c new file mode 100644 index 0000000..ed46f66 --- /dev/null +++ b/Year 3/System programming/Practice08/ex6.c @@ -0,0 +1,34 @@ +#include <stdio.h> +#include <signal.h> +#include <sys/types.h> +#include <unistd.h> +#include <sys/wait.h> + +void termHandler(int a) { + printf("childterm\n"); +} + +int fp = 0; + +void alarmHandler(int a) { + kill(fp, SIGTERM); +} + +int main() { + signal(SIGTERM, &termHandler); + signal(SIGALRM, &alarmHandler); + + fp = fork(); + if (fp == 0) { // child + pause(); + pause(); + } + else { + alarm(1); + pause(); + alarm(1); + wait(NULL); + } + + return 0; +} |
