#include #include #include #include #include #include //This is not a good idea //Should create 2 pipes rather than use 1 bidirectional pipe int main(void){ int pipefds[2]; pipe(pipefds); pid_t id = fork(); if( id == 0){ //I am the child char message[] = "Hi mum!\n"; char buf[100] = {}; read(pipefds[0],buf,100); write(pipefds[1],message,strlen(message)); printf("I am the child and I got the message %s\n",buf); close(pipefds[0]); } else { //I am the parent char message[] = "Hello my child\n"; write(pipefds[1],message,strlen(message)); char buf[100]; read(pipefds[0],buf,100); printf("I am the parent and I got the message %s\n",buf); close(pipefds[1]); } return 0; }