From 7abf21eb77067191ededd96e0b0a3ddb31317eeb Mon Sep 17 00:00:00 2001 From: Carlos Maiolino Date: Thu, 25 Sep 2025 15:28:20 +0200 Subject: sigme: playground for signals Program to play with signal manipulation Signed-off-by: Carlos Maiolino --- C/HF/sigme.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 C/HF/sigme.c (limited to 'C/HF') diff --git a/C/HF/sigme.c b/C/HF/sigme.c new file mode 100644 index 0000000..b1d5fb6 --- /dev/null +++ b/C/HF/sigme.c @@ -0,0 +1,36 @@ +#include +#include +#include + +typedef void (*sig_handler) (int); +void +kill_me(int s) { + puts("\n\nGoodbye cruel world...\n"); + exit(99); +} + +int +change_signal(int sig, sig_handler handler) { + struct sigaction action = { + .sa_handler = handler, + .sa_flags = 0, + }; + + sigemptyset(&action.sa_mask); + return sigaction(sig, &action, NULL); +} + +int +main(void) { + char name[30]; + + if (change_signal(SIGINT, kill_me) < 0) { + fprintf(stderr, "Couldn't change SIGINT action\n"); + exit(1); + } + + printf("Enter your name: "); + fgets(name, 30, stdin); + printf("Hello %s\n", name); + return 0; +} -- cgit v1.2.3