summaryrefslogtreecommitdiffstats
path: root/02_exercise/beispiele/pipe_example/pipe.c
diff options
context:
space:
mode:
authorStefan Zabka <zabkaste@hu-berlin.de>2020-05-24 12:09:46 +0200
committerStefan Zabka <zabkaste@hu-berlin.de>2020-05-24 12:09:46 +0200
commit65966ded0cc15c5966c6568cf0ff2f2bbe1fc29a (patch)
tree60af69be16926ef0f24ad2a954d9205ce9277450 /02_exercise/beispiele/pipe_example/pipe.c
parent3b7e61eab8ce5d230bc1b172942c1ab9459ed161 (diff)
downloadbetriebssysteme-65966ded0cc15c5966c6568cf0ff2f2bbe1fc29a.tar.gz
betriebssysteme-65966ded0cc15c5966c6568cf0ff2f2bbe1fc29a.zip
Big remodelling
Diffstat (limited to '02_exercise/beispiele/pipe_example/pipe.c')
-rw-r--r--02_exercise/beispiele/pipe_example/pipe.c60
1 files changed, 0 insertions, 60 deletions
diff --git a/02_exercise/beispiele/pipe_example/pipe.c b/02_exercise/beispiele/pipe_example/pipe.c
deleted file mode 100644
index 422e4d5..0000000
--- a/02_exercise/beispiele/pipe_example/pipe.c
+++ /dev/null
@@ -1,60 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#define BUF_SIZE 32
-
-int pipe_fds[2];
-
-void term(const char *msg) {
- if (msg) {
- fprintf(stderr, "Error: %s\n", msg);
- fflush(stderr);
- }
-
- int close_fail = 0;
- int ret = close(pipe_fds[0]);
-
- if (ret < 0) {
- fprintf(stderr, "Error: Couldn't close reading end of pipe\n");
- fflush(stderr);
- close_fail = 1;
- }
-
- ret = close(pipe_fds[1]);
-
- if (ret < 0) {
- fprintf(stderr, "Error: Couldn't close writing end of pipe\n");
- fflush(stderr);
- close_fail = 1;
- }
-
- exit((msg || close_fail) ? EXIT_FAILURE : EXIT_SUCCESS);
-}
-
-int main(void) {
- int ret = pipe(pipe_fds);
-
- if (ret < 0)
- term("Couldn't create pipe");
-
- char out_buf[] = "hello";
- ret = write(pipe_fds[1], out_buf, strlen(out_buf) + 1);
-
- if (ret < 0)
- term("Couldn't write to pipe");
-
- printf("send msg: %s\n", out_buf);
-
- char in_buf[BUF_SIZE];
- memset(in_buf, 0, BUF_SIZE);
-
- ret = read(pipe_fds[0], in_buf, BUF_SIZE - 1);
-
- if (ret < 0)
- term("Couldn't read from pipe");
-
- printf("recv msg: %s\n", in_buf);
- return 0;
-}