Nie potrafię poradzić sobie z problemem czyszczenia bufora. Program działa następująco: jeśli semafor jest podniesiony, to wszystko jest w porządku i po każdym obrocie mam odczytanie linii z stdin i przekazanie jej do pliku.
Problem pojawia się kiedy opuszczam semafor i program czeka na jego odblokowanie w linii >>semlock(semid1);
Jeśli w tym czasie kiedy program czeka zacznę wpisywać coś do konsoli, to po odblokowaniu pętla przelatuje tyle razy ile wstawiłem nowych linii. Nie chcę tego efektu, chciałbym by w chwili kiedy program czeka, wszystkie linie wprowadzone do stdin były ignorowane.