[Linux/C] przesylanie liczb przez potoki

0

Witam wszystkich, moze mi ktos powiedziec czy przez potoki da sie przesylac liczby i jak ?
jesli chodzi o wiadomosc tekstowa, nie ma zadnego problemu, probuje najpierw przeslac jednego inta, docelowo chcialbym przesylac tablice intow, jak to moge zrobic?
moj kod wyglada tak

  #include <stdio.h>
  #include <unistd.h>
  #include <sys/types.h>
  
  int main(void)
  {
          int     fd[2], nbytes;
          pid_t   childpid;
          int readbuffer;
  
          pipe(fd);
          
          if((childpid = fork()) == -1)
          {
                  perror("fork");
                  exit(1);
          }
  
          if(childpid == 0)
          {
                  /* Potomek zamyka końcówkę wejściową */
                  close(fd[0]);
  
				  int    liczba = 34;
				  if(write(fd[1], liczba, sizeof(liczba))) printf("powiodlo sie zapisanie do potoku\n");
                  exit(0);
          }
          else
          {
                  /* Rodzic zamyka końcówkę wyjściową */
                  close(fd[1]);
  
                  /* oraz wczytuje dane z potoku */
                  nbytes = read(fd[0], readbuffer, sizeof(readbuffer));
                  if(nbytes) printf("\npowiodlo sie takze odczytanie z potoku\n\n"); else printf("blad odczytu");
                  int i;
                  for(i=0;i<5;i++) printf("\n\%d",readbuffer);
                  //for(i=0;i<20;i++) printf(readbuffer);
  }
          
          return(0);
  }
  

zapis do potoku dziala, natomiast odczytanie zwraca mi 0

0

musisz przekazac adres jako drugi parametr, nie wartosc zmiennej

write(fd[1], &liczba, sizeof(liczba));

analogocznie read

0

ha, mistrzostwo stary, wielkie, naprawde wielkie dzieki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1