aboutsummaryrefslogtreecommitdiffstats
path: root/csci4061/110920_breakout/zip/sol2.c
diff options
context:
space:
mode:
authorRossTheRoss <mstrapp@protonmail.com>2020-11-16 08:16:56 -0600
committerRossTheRoss <mstrapp@protonmail.com>2020-11-16 08:16:56 -0600
commit15f44b78af83cd0e46f0831d072c501c79c8bf55 (patch)
tree7691a78cdfc8f1f94ff003791fecb8ab9ff8d142 /csci4061/110920_breakout/zip/sol2.c
parentAdd new breakout (diff)
downloadhomework-15f44b78af83cd0e46f0831d072c501c79c8bf55.tar
homework-15f44b78af83cd0e46f0831d072c501c79c8bf55.tar.gz
homework-15f44b78af83cd0e46f0831d072c501c79c8bf55.tar.bz2
homework-15f44b78af83cd0e46f0831d072c501c79c8bf55.tar.lz
homework-15f44b78af83cd0e46f0831d072c501c79c8bf55.tar.xz
homework-15f44b78af83cd0e46f0831d072c501c79c8bf55.tar.zst
homework-15f44b78af83cd0e46f0831d072c501c79c8bf55.zip
help
Diffstat (limited to '')
-rw-r--r--csci4061/110920_breakout/zip/sol2.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/csci4061/110920_breakout/zip/sol2.c b/csci4061/110920_breakout/zip/sol2.c
new file mode 100644
index 0000000..04dad3e
--- /dev/null
+++ b/csci4061/110920_breakout/zip/sol2.c
@@ -0,0 +1,52 @@
+/*
+* Recitation Section Number: 9
+* Breakout Number: 6
+* Audrey Hebert (heber169)
+* Qiyu Tian (tian0068)
+* Mouhari Mouhamed (mouha003)
+* Matt Strapp (strap012)
+*/
+
+#include <stdio.h>
+#include <signal.h>
+#include <unistd.h>
+#include <time.h>
+
+// Remember the usage of sig_atomic_t in the recitation example
+static volatile sig_atomic_t doneflag = 0;
+
+static void setdoneflag(int signo) {
+ doneflag = doneflag ^ 1;
+}
+
+void infinitePrint() {
+
+ static int count = 0;
+ printf("%ld: Count = %d\n", time(NULL), ++count);
+ sleep(1);
+}
+
+int main() {
+
+ // ------------------sol2.c-----------------
+ // setup signal handler - sigaction struct, sigemptyset,
+ struct sigaction act;
+ sigset_t sigset;
+ // specify action associated with SIGNT - sigaction()
+ act.sa_handler = setdoneflag; /* set up signal handler */
+ act.sa_flags = 0;
+ if ((sigemptyset(&act.sa_mask) == -1) ||
+ (sigaction(SIGINT, &act, NULL) == -1))
+ {
+ perror("Failed to set SIGINT handler");
+ return 1;
+ }
+ // You are free to modify the while loop but not the infinitePrint()
+ // -----------------------------------------
+
+ /* Print infinitely. */
+ while (1) {
+ if (!doneflag)
+ infinitePrint();
+ }
+} \ No newline at end of file