Witam,
proszę o pomoc przy napisaniu programu, a w zasadzie to dwóch które będą działały synchronicznie z wykorzystaniem sygnałów SIGUSR1 i SIGUSR2, pierwszy program odczytuje z pliku linię i zapisuje do pliku bufor, drugi program odczytuje linie z bufora, po czym pierwszy nadpisuje linie w buforze.
pierwszy błąd pojawia się przy próbie zapisu do pliku bufor, write ( muszę użyć write) zawsze zwraca mi -1, niżej umieszczam części kodu
...
int bufor_plik=0;
...
void czytaj(int sig)
{
int h;
FILE * fp = fopen("tekst.txt", "r");
char bufor[128];
while(fscanf(fp, "%128[^\n]\n", bufor) == 1)
{
lseek(bufor_plik,0,0);
h=write(bufor_plik, bufor, sizeof bufor);
if(h==-1) printf("error");
kill(pidPot, SIGUSR1);
memset(&bufor 0, 128);
sleep(1);
}
...
main(){
....
bufor_plik = open("bufor", O_CREAT | O_RDWR);
...
}
Powyższy kod jest dla zadania gdzie zrobiłem to dla procesu macierzystego i potomka, ale nie wiem jak zrobić synchronizacje dla dwóch oddzielnych programów.
Z góry dzięki za pomoc.