From 3ef3d7273853532871c259834fb28885173a09be Mon Sep 17 00:00:00 2001 From: Yasushi SHOJI Date: Mon, 20 Mar 2023 10:05:41 +0900 Subject: [PATCH] cansniffer: Follow Bash exit status when signaled Bash and many other shells use 128 + signum as the exit status when a program get signal and exit. Follow the common behavior so that we know how the programs are killed. Signed-off-by: Yasushi SHOJI --- cansniffer.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cansniffer.c b/cansniffer.c index 5aa5e7a..975166d 100644 --- a/cansniffer.c +++ b/cansniffer.c @@ -124,6 +124,7 @@ extern int optind, opterr, optopt; static int idx; static int running = 1; +static volatile sig_atomic_t signal_num; static int clearscreen = 1; static int print_eff; static int print_ascii = 1; @@ -243,6 +244,7 @@ void print_usage(char *prg) void sigterm(int signo) { running = 0; + signal_num = signo; } int main(int argc, char **argv) @@ -428,6 +430,10 @@ int main(int argc, char **argv) printf("%s", CSR_SHOW); /* show cursor */ close(s); + + if (signal_num) + return 128 + signal_num; + return ret; }