Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C] Pipe tra tre processi

    Devo fare un programma che crea tre processi figli, con delle pipe tra di essi.
    il processo 1 scrive un messaggio al processo 2, il quale lo scrive tale e quale al proc 3, che poi lo rimanda al processo 1.Quando al processo 1 ritorna lo stesso messagio, ne manda uno nuovo...

    guardando degli esempi sono riuscito a farne uno, ma con un solo processo figlio....il problema è come fare a far comunicare 3 processi figli...

    ecco quello che sono riuscito a fare:

    codice:
    #include <stdio.h>
    
    
    
     main()
    {int fdes1[2];int fdes2[2];
     int pid;
      int i=1;
      int j=1;
     char buffer1[5];
     char buffer2[6];
     pipe(fdes1);   /*creating first pipe*/
     pipe(fdes2);   /* second pipe */
     
    pid = fork();
    
    if (pid==0){   /*child */
    close(fdes1[1]);
    close(fdes2[0]);
                    
    while(i!=0){
    i=read(fdes1[0], buffer1,5);
    printf("%d characters received by child= ",i);
    buffer1[i]='\0';
    printf("%s\n",buffer1);
    }
    close(fdes1[0]);
    
    sleep(1);
              
    write(fdes2[1],"Ciao, Papa!",sizeof("Ciao, Papa!"));
    
    }
    
    if (pid!=0) {                      /* in parent */
    close(fdes1[0]);
    close(fdes2[1]);
    write(fdes1[1],"Ciao, Bambino!",sizeof("Ciao, Bambino!"));
    close(fdes1[1]);
    
    
    while(j!=0){
    j=read(fdes2[0], buffer2,6);
    printf("%d characters received by father= ",j);
    buffer2[j]='\0';
    printf("%s\n",buffer2);
    }
    
    
            
       }
    }
    sapreste darmi gentilmente una mano???
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    49
    non ho visto bene il codice comunque tre processi non penso ci siano se c'è una sola fork

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.