Powrót na stronę UNIX

Napisz program, który dla podanego drzewa katalogów znajdzie wszystkie linki symboliczne które generują w tym drzewie cykle, czyli takie, których zawartość wskazuje ścieżkę bezwzględną bedącą częścią bezwględnej ścieżki do linku. Program ma sparwdzić całą strukturę katalogów, podążając wgłąb katalogów oraz za linkamów symbolicznych niegenerującymi pętli. Przeszukiwanie struktury katalogów może odbywać się z użyciem wywołań rekurencyjnych. Jeśli podczas przeszukiwania katalogu, program natrafi na link symboliczny, który wskazuje na

  1. katalog, za pomocą ścieżki względnej
  2. inny link symboliczny
  3. nieprawidłową ścieżkę
należy jedynie wypisać na stdout komunikat z nazwą tego linku i jego "typem" (nie próbować podążąć za nim)
Program może być jednoprocesowy. Program przyjmuje jeden parametr, który jest katalogiem stanowiącym korzeń struktury do sprawdzenia. Dla podanego parametru należy wypisać jego nazwę oraz listę wykrytych pętli lub komunikat o ich braku.
Komunikat o pętli ma format:
 
	/bezwzględna/sciezka/do/linku/nazwa_linku --> /sciezka/wskazywana/przez/link
Przykładowe użycia programu:
	$loop_finder  ./data
	[./data]
	Brak pętli

	$loop_finder /home
	[/home]
	Wykryte pętle:
	/home/user_a/xxx/yyy/nazwa --> /home/user_a/xxx
	/home/user_b/zzz/vvv/rrr/kkk/nazwa2 --> /home

	$loop_finder ../../www
	[../../www]
	Brak pętli

Zadanie będzie sprawdzane przez Przeysława Zdroika, należy je wgrać do katalogu /home2/samba/zdroikp/unix

Szczególna uwagę zwracamy na:

Powrót na stronę UNIX