Sygnały
Zadanie 5 - Sygnały
Celem ćwiczenia jest napisanie programu pokazującego zachowanie programu
przechwytującego sygnały. Należy uodpornić program przynajmniej na
przerwanie go przez użytkownika przez naciśnięcie Ctrl-C (program powinien
wówczas wypisać na ekranie komunikat o przechwyceniu sygnału, zamknąć
wszystkie otwarte pliki i dopiero zakończyć działanie) oraz przedwczesne
zamknięcie strumienia przez proces czytający (w tym celu można wykorzystać
fragmenty programu pokazującego działanie strumienia pipe lub FIFO --
w procesie głównym zapisać pewną ilość danych do strumienia, a w drugim
procesie, po odczytaniu kilku bajtów ze strumienia zamknąć go, powodując
w ten sposób wysłanie sygnału SIG_PIPE
do procesu głównego.
Można również wykorzystać program filozofów, wykorzystując sygnały do przekazania informacji całemu systemowi, że ma zakończyć działanie (przez "łagodne" wyjście wszytskich filozofów z jadalni i zakończenie w stanie gdy wszyscy medytują).
Należy
też pokazać wysyłanie sygnałów za pomocą kill
(np. wysyłając
sygnał SIG_USR1
nie przerywający działania programu, lecz jedynie
drukujący informację o otrzymaniu sygnału.