#include #include #include #include #include #include #include "header.h" void box_RX(int transmit, int recieve); void box_TX(int transmit, int recieve); char buffer[128]; FILE* test; int main() { pid_t child; int TX[2]; int RX[2]; ssize_t rw_return; int pipe_return; assert((pipe_return = pipe(TX)) == 0); assert((pipe_return = pipe(RX)) == 0); if((child = fork()) == -1) { return -1; } else if(child == 0) { /* child RX side*/ rw_return = read(RX[0], buffer, 128); if(rw_return == -1) { perror("CHILD READ:"); } printf("child read %d\n", rw_return); rw_return = write(TX[1], buffer, 128); if(rw_return == -1) { perror("CHILD WRITE:"); } printf("child wrote %d\n", rw_return); box_RX(TX[0], RX[1]); } else { fgets(buffer, 128, stdin); rw_return = write(RX[1], buffer, 128); if(rw_return == -1) { perror("PARENT WRITE"); } printf("parent wrote %d\n", rw_return); buffer[0] = '\0'; rw_return = read(TX[0], buffer, 128); if(rw_return == -1) { perror("PARENT READ:"); } printf("parent read %d\n", rw_return); printf("got %s\n", buffer); box_TX(RX[0], TX[1]); wait(NULL); /* parent TX side*/ } return 0; } void box_RX(int transmit, int recieve) { } void box_TX(int transmit, int recieve) { }