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