Witam,
Mam za zadanie stworzyć potok fifo w pierwszym progrmanie i następnie przesłać przez ten potok tekst do 2 programu.
Stworzyłem coś takiego:
1 program(tworzy potok):
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
int main()
{
const int dlugosc = 12;
char tablica[6];
FILE *f = fopen("zrodlo", "r");
mkfifo("potok", 0600);
FILE *g = fopen("potok", "w");
fgets(tablica, dlugosc, f);
printf("Tablica: %s\n", tablica);
write(g, tablica, dlugosc);
close(g);
close(f);
}
2 program(czyta potok):
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
int main()
{
const int dlugosc = 12;
char tablica[6];
FILE *h = fopen("potok", "r");
FILE *i = fopen("zapis", "w");
fgets(tablica, dlugosc, h);
printf("Tablica: %s\n", tablica);
write(i, tablica, dlugosc);
close(h);
close(i);
}
Potok się tworzy i wszystko jest fajnie, ale wygląda na to, że 1 program nic do niego nie zapisuje. Czy mam użyc innej funkcji do zapisu niz write? Czy gdzieś zrobiłem jakiś głupi błąd? Czy w ogóle moja koncepcja programu jest zła?