Laboratorium 2 
==============
Synchronizacja i komunikacja procesow za pomoca lacz nienazwanych
-----------------------------------------------------------------
Lektura podstawowa:    Rochkind, rozdz. 6.2 i 6.3  
                       Stevens,  rozdz. 2.3 i 3.4

Lektura uzupelniajaca: Bach,     rozdz. 7.1

1. Kompilacja: wywolaj program `make'
2. Uzytkowanie: uruchamianie programow
3. Pliki:

   err.h
        Plik naglowkowy biblioteki obslugujacej bledy.

   err.c
        Biblioteka obslugujaca bledy.

   parent_pipe.c
        Tworzy proces, ktory ma wykonac program "child_pipe".  Proces 
        macierzysty komunikuje sie z nim za pomoca lacza, do ktorego pisze
        krotki komunikat.
        Wazne funkcje systemowe:
		pipe() - tworzy lacze
		write() - pisze do lacza/pliku
		read() - odczytuje z lacza/pliku
		close() - zamyka lacze/plik
        Porownaj synchronizacje i komunikacje procesow przy pomocy potokow 
	na poziomie interpretatora polecen - uruchom kilka potokow, sprawdz
	jakie procesy dzialaja. 

   child_pipe.c
        Czyta komunikat z deskryptora, ktory jest wskazany przez jedyny 
        argument wywolania programu.

   parent_dup.c
        Wywolanie: parent_dup <command> [<arg_1> ... <arg_n>]
        Tworzy nowy proces, ktory ma wykonac polecenie z argumentami 
        <arg_1> ... <arg_n>.  Proces macierzysty pisze (za pomoca lacza)
        krotki komunikat na standardowe wejscie procesu potomnego.
	Funkcje:
	   dup() - powiela deskryptor na najnizszy dostepny deskryptor
           dup2()- powiela deskryptor na zadany deskryptor, ktory 
                   zamyka w razie potrzeby

        Przyklady wywolan:
                parent_dup cat
                parent_dup grep from
                parent_dup grep ludziska
                parent_dup wc
                parent_dup mail `whoami`

4. Cwiczenie: 

  Napisac "linie" 5 procesow komunikujacych sie za pomoca laczy.
  Pierwszy proces pobiera napis od uzytkownika, procesy posrednie - przekazuja
  sobie napis (moga go modyfikowac), a ostatni proces wypisuje napis na 
  standardowe wyjscie.
