Salve, ho un problema con la scrittura sulla pipe da parte del processo padre. In pratica creo n figli con la fork(), per ogni figlio creato il padre scrive nella pipe ed il figlio la legge e termina. Non mi fa la write il padre. Posto il pezzo di codice che da problemi:

//buffer per scrittura char *t="Hello";

/Creazione Pipe/ if(pipe(fdpipe) == -1) { perror("pipe"); exit(1); }

printf("Processo padre: pipe creata\n");

close(fdpipe[0]);

/*Creazione processi figli*/
int numeroprocessi = atoi(argv[4]);

char s[100];

for(i=0;i<numeroprocessi;i++){

//wait(&statowait);        
if(pid=fork() == 0){
      close(fdpipe[1]);
           if(read(fdpipe[0],s,sizeof(s)) > 0){
           printf("Sono il figlio ho letto il messagio: %s\n",s);
           close(fdpipe[0]);
           exit(&statowait);}
       else{
         printf("Processo figlio:non c'è nulla da leggere\n");
             close(fdpipe[0]);
             exit(&statowait);} 
    }
    else{
   printf("weee");
   close(fdpipe[0]);
   write(fdpipe[1],t,sizeof(t));              
       printf("sono il padre: ho creato il figlio: %d\n", i);
   wait(&statowait);
   exit(0);}

}

Questa domanda è segnata come "wiki".

chiesto 01 Giu '17, 12:43

andrearossi's gravatar image

andrearossi
034

Scrivi tu la prima risposta!
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×13

domanda posta: 01 Giu '17, 12:43

domanda visualizzata: 169 volte

ultimo aggiornamento: 01 Giu '17, 12:43

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.