From 17db27413b897c79af449ebe57cd8f802f4e79ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=84=EC=98=81=EC=88=98?= <lys7120@ajou.ac.kr> Date: Tue, 8 May 2018 11:14:09 +0900 Subject: [PATCH] /* signal handling complete */ --- src/main.c | 11 ++++++++++- src/signal_handlers.c | 7 +++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main.c b/src/main.c index 77c7804..1898cbd 100644 --- a/src/main.c +++ b/src/main.c @@ -1,16 +1,25 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <signal.h> #include "commands.h" #include "built_in.h" #include "utils.h" +#include "signal_handlers.h" int main() { char buf[8096]; - + while (1) { + /* buf reset to all '0' */ + memset(buf, 0, 8096); + + /* signal handling */ + signal(SIGINT, (void*)catch_sigint); + signal(SIGTSTP, (void*)catch_sigtstp); + fgets(buf, 8096, stdin); struct single_command commands[512]; diff --git a/src/signal_handlers.c b/src/signal_handlers.c index 4b6fe2e..aab0ba2 100644 --- a/src/signal_handlers.c +++ b/src/signal_handlers.c @@ -1,11 +1,14 @@ #include "signal_handlers.h" +#include <signal.h> void catch_sigint(int signalNo) { - // TODO: File this! + // Ctrl + C + signal(SIGINT, catch_sigint); } void catch_sigtstp(int signalNo) { - // TODO: File this! + // Ctrl + Z + signal(SIGTSTP, catch_sigtstp); } -- GitLab