diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2015-09-18 11:50:41 +0200 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2015-09-18 13:01:06 +0200 |
commit | 3adde88a642a7e3018ab53adf082d51cb326be94 (patch) | |
tree | fadc7b2c70e99847c3ff7866991c085c120d34f0 | |
parent | 59b387bb38e6b434d572d17c744cd0a48647c8af (diff) | |
download | canutils-3adde88a642a7e3018ab53adf082d51cb326be94.tar.gz canutils-3adde88a642a7e3018ab53adf082d51cb326be94.tar.xz |
cansequence: use sigaction() instead of signal
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
-rw-r--r-- | src/cansequence.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/cansequence.c b/src/cansequence.c index 6fa3abb..d916576 100644 --- a/src/cansequence.c +++ b/src/cansequence.c @@ -70,7 +70,7 @@ static void print_usage(char *prg) prg, CAN_ID_DEFAULT); } -static void sigterm(int signo) +static void sig_handler(int signo) { running = false; } @@ -208,6 +208,9 @@ static void do_send() int main(int argc, char **argv) { + struct sigaction act = { + .sa_handler = sig_handler, + }; struct ifreq ifr; struct sockaddr_can addr; char *interface = "can0"; @@ -216,8 +219,9 @@ int main(int argc, char **argv) int receive = 0; int opt; - signal(SIGTERM, sigterm); - signal(SIGHUP, sigterm); + sigaction(SIGINT, &act, NULL); + sigaction(SIGTERM, &act, NULL); + sigaction(SIGHUP, &act, NULL); struct option long_options[] = { { "extended", no_argument, 0, 'e' }, |