From dde37c31a72f4773e95faf8223ef450440bdb62c Mon Sep 17 00:00:00 2001 From: RossTheRoss Date: Sun, 17 Jan 2021 12:57:21 -0600 Subject: get rid of that trash --- OLD/csci4061/100520_breakout/exercise.c | 47 +++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 OLD/csci4061/100520_breakout/exercise.c (limited to 'OLD/csci4061/100520_breakout') diff --git a/OLD/csci4061/100520_breakout/exercise.c b/OLD/csci4061/100520_breakout/exercise.c new file mode 100644 index 0000000..6d560d5 --- /dev/null +++ b/OLD/csci4061/100520_breakout/exercise.c @@ -0,0 +1,47 @@ +/* +* Recitation Section Number: +* Breakout Number: +* Member Name +* Member Name +* Member Name +* Member Name +*/ + +#include +#include +#include +#include +#include +#include +#include +#define BUFSIZE 20 +#define PERM 0644 +int main(int argc, char *argv[]) { + int infile; char buffer[BUFSIZE]; + // create/open a file named write.txt + infile = open("write.txt", O_CREAT | O_RDWR | O_TRUNC, PERM); + // write hello world to write.txtS + write(infile, "hello world\n", 12); + // spawn a child process and use this child process to reroute stdout to write.txt + pid_t pid = fork(); + if (!pid) { + dup2(infile, 1); + } + // print pid + printf("Process %d\n", pid); + + // use the child process spawned previously to read the contents from write.txt, restore output to stdout + // and then prints the contents of write.txt to stdout. + if (!pid) { + read(infile, buffer, 20); + int stdout = open("/dev/tty", O_WRONLY); + dup2(1, stdout); + printf("%s\n", buffer); + return 0; + } + // print pid + printf("%d\n", pid); + // close the file write.txt + close(infile); + return 0; +} \ No newline at end of file -- cgit v1.2.3