diff --git a/lab6/Makefile b/lab6/Makefile index fc0d6c2..7e7b5e7 100644 --- a/lab6/Makefile +++ b/lab6/Makefile @@ -1,14 +1,13 @@ obj-m += mypipe.o OUT_DIR := build -.PHONY: all kern_mod install uninstall clean +.PHONY: all kern_mod install uninstall clean reader writer all: kern_mod @true kern_mod: mypipe.c - make -C /lib/modules/$(shell uname -r)/build M=$(PWD) MO=$(PWD)/build - + make -C /lib/modules/$(shell uname -r)/build M=$(PWD) MO=$(PWD)/build/kern install: insmod ./build/mypipe.ko @@ -16,6 +15,14 @@ install: uninstall: rmmod mypipe +reader: + mkdir -p $(OUT_DIR) + gcc pipe_read.c -o $(OUT_DIR)/pread + +writer: + mkdir -p $(OUT_DIR) + gcc pipe_write.c -o $(OUT_DIR)/pwrite + clean: $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean rm -rf $(OUT_DIR) diff --git a/lab6/pipe_read.c b/lab6/pipe_read.c new file mode 100644 index 0000000..9762185 --- /dev/null +++ b/lab6/pipe_read.c @@ -0,0 +1,24 @@ +#include +#include +#include + +int main() { + int fd = open("/dev/wendy_out", O_RDONLY); + if (fd < 0) { + printf("Error open pipe"); + return 1; + } + + char buf[128]; + ssize_t n = read(fd, buf, sizeof(buf) - 1); + if (n < 0) { + printf("Error read pipe"); + return 1; + } + + buf[n] = '\0'; + printf("Reader received: %s", buf); + + close(fd); + return 0; +} \ No newline at end of file diff --git a/lab6/pipe_tester.cpp b/lab6/pipe_tester.cpp new file mode 100644 index 0000000..8038bd3 --- /dev/null +++ b/lab6/pipe_tester.cpp @@ -0,0 +1,5 @@ +#include + +int main() { + +} \ No newline at end of file diff --git a/lab6/pipe_write.c b/lab6/pipe_write.c new file mode 100644 index 0000000..b05b83e --- /dev/null +++ b/lab6/pipe_write.c @@ -0,0 +1,18 @@ +#include +#include +#include +#include + +int main() { + int fd = open("/dev/wendy_in", O_WRONLY); + if (fd < 0) { + printf("Error open pipe"); + return 1; + } + + const char *msg = "Hello from the other side!\n"; + write(fd, msg, strlen(msg)); + + close(fd); + return 0; +} \ No newline at end of file