Powrót na stronę UNIX

Katalogi i pliki, wersja A

Napisz program, który przegląda katalogi i zapisuje ich zawartość w pliku wynikowym. Wywołanie programu:
    dir_content OUTPUT_FILE DIR1 DIR2 DIR3 ... DIRn
Dla każdego parametru-katalogu DIRi program tworzy proces potomny Pi. Proces Pi dla każdego wpisu w katalogu DIRi zapisuje w pliku OUTPUT_FILE linię w następującym formacie:
   DIRi: entry_type entry_name
Gdzie entry_name to:
    F dla zwykłego pliku
    D dla podkatalogu
    S dla linku symbolicznego
    O dla innego typu
 Na czas zapisywania do OUTPUT_FILE pojedynczej lini, proces musi zablokować plik, by zapewnić, że jego linia będzie zapisana w całości (nie przeplecie się z zapisywaną linią innego procesu).
 Po naciśnięciu Ctrl+C program nie kończy się, ale wypisuje na stderr ciąg: "Wait a second, I'm working".
 Należy używać niskopoziomowych operacji na plikach (open, write, close).
 Wszelkie komunikaty o błędach należy wyprowadzać na stderr (wyjątkowo można używać do tego fprintf/perror).

Uwaga na: Przydatne funkcje:
open, write, close, fcntl, opendir, readdir, closedir, chdir, stat, lstat, readlink, S_ISREG, S_ISDIR, S_ISLNK

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


Powrót na stronę UNIX