#include #include #include #include #define MAXLINE 1024 int main(int argc, char *argv[]) { int n, fd[2]; pid_t pid; char line[MAXLINE], msg[80]; strcpy(msg,argv[1]); if (pipe(fd) < 0) err_sys("pipe error"); if ( (pid = fork()) < 0) err_sys("fork error"); else if (pid > 0) { /* padre */ close(fd[0]); sleep(2); printf("sono il padre. ho appena scritto il messaggio nella pipe\n"); write(fd[1], msg, sizeof(msg)); //wait(); } else { /* figlio */ close(fd[1]); printf("sono il processo figlio. Aspetto il messaggio\n"); n = read(fd[0], line, MAXLINE); printf("ricevuto: %s\n", line); } exit(0); }