Laboratorium 3
==============
Lacza FIFO 
----------

Lektura podstawowa:
      * Rochkind, rozdz. 7.4
      *	man do poszczegolnych funkcji.
	
1. Kompilacja: wywolaj program `make'

2. Uzytkowanie:
      - ustalic wartosc zmiennej srodowiskowej FIFO_NAME np.
        export FIFO_NAME=plikfifo1
      - uruchomic test_fifo z kilku sesji.
      - full_fifo sluzy do zapelnienia kolejki fifo.
     Nalezy pamietac by na sesjach wartosc zmiennej FIFO_NAME byla jednakowa. 
     W przeciwnym wypadku procesy nie skomunikuja sie.
  
3. Pliki:

   err.c, err.h
   	Obsluga bledow.

   fifo.h
	Wspolne definicje dla programow test_fifo.c i full_fifo.c.

   test_fifo.c
   	Program testujacy kolejke fifo.

   full_fifo.c
   	Program zapelniajacy kolejke fifo.

4. Uwagi: 
  a) Warto wlasnorecznie przetestowac wszystkie przypadki opisane w ksiazce 
     Stevensa. 

  b) Tworzenie laczy nazwanych z poziomu interpretatora polecen:
	mknod <filename> p
	mkfifo <filename>
     Przyklad:
	mkfifo fifofile   
	grep ps < fifofile &
	ps | tee fifofile >> fifofile
	rm fifofile
     Jaki bedzie wynik tych instrukcji?  (UWAGA: tee - czyta z stdin i
		i zapisuje do pliku wskazanego argumentem i na stdout).

  c) Sa problemy z laczami nienazwanymi pod NFS (wspolny system plikow). 
    Lacza nie pozwalaja na komunikacje pomiedzy procesami dzialajacymi na 
    roznych maszynach (np. green02 i green03).  Wystepuje
    brak dostepu do kolejki.  W tym wypadku rozmiar stworzonej kolejki nie 
    jest zerowy.  Dobrym rozwiazaniem jest stworzenie kolejki na dysku 
    lokalnym (np. w katalogu /tmp).

  d) Proces, ktory otworzyl kolejke, ma do niej dostep nawet po usunieciu tej
     kolejki.
