#include <stdio.h> #include <stdlib.h> #include <unistd.h> #define MSGSIZE 32 int main(int argc, char **argv) { int p[2]; int pid; int j; char inbuf[MSGSIZE]; if (pipe(p) == -1) { printf("pipe call error"); exit(1); } for (j = 0; j < 2; j++) printf("p[%i]: %i\n", j, p[j]); write(p[1], "TEST 1", MSGSIZE); printf("r: %i\n", read(p[0], inbuf, MSGSIZE)); printf("Parent: %s\n", inbuf); write(p[1], "TEST 2", MSGSIZE); printf("r: %i\n", read(p[0], inbuf, MSGSIZE)); printf("Parent: %s\n", inbuf); printf("r: %i\n", read(p[0], inbuf, MSGSIZE)); printf("Parent: %s\n", inbuf); write(p[1], "TEST 3", MSGSIZE); read(p[0], inbuf, MSGSIZE); printf("Parent: %s\n", inbuf); printf("lseek: %i\n", lseek(p[0], 128, SEEK_SET)); write(p[1], "TEST 4", MSGSIZE); write(p[1], "TEST 5", MSGSIZE); read(p[0], inbuf, MSGSIZE); printf("Parent: %s\n", inbuf); read(p[0], inbuf, MSGSIZE); printf("Parent: %s\n", inbuf); printf("r: %i\n", read(p[0], inbuf, MSGSIZE)); printf("Parent: %s\n", inbuf); /* switch (pid = fork()) { case 0: close(p[0]); write(p[1], "TEST 1", MSGSIZE); write(p[1], "TEST 2", MSGSIZE); write(p[1], "TEST 3", MSGSIZE); break; default: close(p[1]); for (j=0;j<3;j++) { read(p[0], inbuf, MSGSIZE); printf("Parent: %s\n", inbuf); } } */ return(0); }