Ilustracja uzycia funkcji systemowych fork, exec, wait, pipe
------------------------------------------------------------

1. Kompilacja: wywolaj program `make'

2. Uzytkowanie: uruchamianie programow

3. Pliki:

proc_fork.c
        Tworzy nowy proces.

proc_exec.c
        Tworzy nowy proces, ktory wykona polecenie "ps".

simple_shell.c
        Przykladowa implementacja interpretatora polecen. Dodaj do niego 
	mozliwosc wykonywania procesow w tle.

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.

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

err.h
        Plik naglowkowy biblioteki obslugujacej bledy.

err.c
	Biblioteka obslugujaca bledy.

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 potomengo.
	Program `parent_dup.c' korzysta z biblioteki `err.c'.

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

4. Uwagi: 
  a) Plik naglowkowy `unistd.h' deklaracje standardowych funkcji unixowych
     (for, exec, write, etc.).  Warto go dolaczyc do programu, aby kompilator 
     nie generowal ostrzezen takich jak, "implicit declaration of function 
     `fork'".

  b) Deklaracja funkcji wait znajduje sie w `sys/wait.h'.
