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.