#include #include #include #include #include #include #include #include int main(void) { int status, pipedes[2],length; char msg[80]; struct stat pipestat; if (pipe(pipedes)) exit(1); /* initialisation du pipe */ if (fork()) { /* code du père */ close(pipedes[1]); /* fermeture du pipe en écriture */ if (dup2(pipedes[0], 0) == -1) exit(1); close(pipedes[0]); length = read(0, msg, sizeof(msg)); msg[length]=0; printf("got %s\n",msg); wait(&status); return 0; } else { /* code du fils */ close(pipedes[0]); /* fermeture du pipe en lecture */ if (dup2(pipedes[1], 1) == -1) exit(1); close(pipedes[1]); //execl("./pipe3_fils","pipe3_fils",0); write(1, "lolz\n", 5); return 0; } }