From 919e00dd88d009ae40a3e4d1de53727f1b805e63 Mon Sep 17 00:00:00 2001 From: Kranklyboy Date: Wed, 18 Apr 2018 19:32:55 +0200 Subject: [PATCH] signal handler setup --- websh.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/websh.c b/websh.c index d17c114..2cfd1d5 100644 --- a/websh.c +++ b/websh.c @@ -24,6 +24,13 @@ static int sFlag = 0; static const char *word; static const char *tag; +volatile sig_atomic_t quit = 0; + +static void handle_signal(int signal) +{ + quit = 1; +} + void usage(void) { fprintf(stderr, "Usage: websh [-e] [-h] [-s WORD:TAG]\n"); @@ -92,6 +99,14 @@ void parse(int argc, char *argv[]) int main(int argc, char *argv[]) { parse(argc, argv); + + struct sigaction sa; + memset(&sa, 0, sizeof(sa)); + sa.sa_handler = handle_signal; + sigaction(SIGINT, &sa, NULL); + sigaction(SIGTERM, &sa, NULL); + + return 0; }