Napisz program, który:
pipe
),fork
),@@@@
na początku i ####
na
końcu każdej odebranej paczki danych. Wielkość paczek jest dowolna. Zmodyfikuj program z punktu 1 tak aby:
close
i dup
), a następnie uruchomił program (jedna z funkcji
exec*
) wyświetlający obrazek pobrany z tego wejścia (deskryptora 0).Uruchom program i sprawdź, czy proces potomny zacznie wyświetlać obrazek od razu, czy dopiero po zamknięciu potoku przez proces nadrzędny.
Jako program wyświetlający obrazki można zastosować między innymi programy:
display -update 1
)qiv --watch
)feh --reload 1
)Zmodyfikuj program z punktu 1 w taki sposób, by wykorzystując potok nazwany (FIFO) był w stanie wysyłać do tego potoku zawartość wielu kolejnych plików, których nazwy poda użytkownik w formie kolejnych argumentów wywołania. Pomiędzy przesyłaniem zawartości poszczególnych plików program ma odczekać 5 sekund.
Ponieważ potoki FIFO istnieją jako pliki na dysku, i każdy program może je dowolnie otwierać, nie ma tu już potrzeby uruchamiania procesu czytającego przez klonowanie. Program czytający może być uruchomiony całkowicie niezależnie.
Do wyświetlania plików FIFO najlepiej wykorzystać program tail
z
argumentami -c +NUM
oraz -f
(flaga -f
powoduje, że po osiągnięciu
końca pliku, program tail nie kończy pracy tylko czeka na dalsze dane).