Powrót na stronę UNIX

Tematyka zadania: fifo
Rodzaj sprawdzania: po zajęciach
Czas pisania: 90 minut
Sprawdzający: Marcin Borkowski
Oddanie zadania: do katalogu: /home2/samba/borkowskim/unix/

Napisz jedno-procesowy program, który jednocześnie czyta dane z konsoli i z swojego indywidualnego FIFO o nazwie [PID].fifo zlokalizowanego w katalogu roboczym. Dane otrzymane z FIFO są wypisywane na ekran. Teksty otrzymane z klawiatury są rozsyłane do FIFO innych instancji tego samego programu. Lokalizacja tych FIFO jest podana w postaci parametrów startowych programu.

Dane odczytywane z klawiatury są rozsyłane liniami o ile rozmiar linii nie przekracza limitu PIPE_BUF, wtedy wysyłany jest blok o długości równej PIPE_BUF.

Nie ma gwarancji, że do FIFO programu ktokolwiek się podłączy w celu pisania. Jednak jeśli przynajmniej jeden proces to zrobi - to po odłączeniu się wszystkich procesów piszących program ma się zakończyć.

Dodatkowo program kończy się bezzwłocznie na skutek C-c lub końca wejścia z stdin. W każdym z 3 opisanych przypadków zakończenia, musi usunąć swoją kolejkę FIFO.

Parametry programu to dowolna ilość ścieżek do plików fifo (także brak ścieżek).

Szczególna uwagę zwracamy na:
Powrót na stronę UNIX