Witam,
Mam do napisania dwa programy, które mają się ze sobą komunikować za pomocą pipe tak aby po wpisaniu liczby do pierwszego, drugi wyświetlał od razu ją na ekranie i dodatkowo magazynował ją w tablicy. Efekt mojej pracy widać poniżej. Niestety program nie działa.
PROGRAM 1:
#include <stdio.h>
int main(){
int pip[2],n,liczba,childpid,a=0;
float tab[256];
pipe(pip);
childpid=fork();
printf("Podaj liczbe liczb do wyslania: ");
scanf("%d", &n);
if(childpid!=0)
{
close(pip[0]);
write(pip[1],n,sizeof(n));
while (a<n)
{
printf("Podaj %d liczbe: ", a+1);
scanf("%d". &tab[a]);
close(pip[0]);
write(pip[1], tab[a], sizeof(tab[a]));
a++;
}
}
}
PROGRAM 2:
#include <stdio.h>
int main(){
int pip[2],n,liczba,childpid,a=0;
float tab[256];
pipe(pip);
childpid=fork();
printf("Podaj liczbe liczb do wyslania: ");
scanf("%d", &n);
if(childpid!=0)
{
close(pip[0]);
write(pip[1],n,sizeof(n));
while (a<n)
{
printf("Podaj %d liczbe: ", a+1);
scanf("%d". &tab[a]);
close(pip[0]);
write(pip[1], tab[a], sizeof(tab[a]));
a++;
}
}
}
Z góry dziękuję za jakąkolwiek pomoc!
Jeśli to mają być dwa osobne programy - to nie wywołuj fork()
niby dlaczego? Najprostsza definicja procesu toproces jest to program uruchomiony i wykonywany na komputerze
. Dla mnie jak najbardziej można tak zrobić