38
pusty, jest wskaźnikiem zmiennej, w której zostanie zachowany poprzedni typ anulowania wątku:
pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS,NULL)
Aby można było powrócić do stanu synchronicznego anulowania, pierwszy parametr musi być PTHRAD_CANCEL_DEFERRED
pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED,NULL)
Punkty anulowania wątków tworzone są funkcją pthread_cancel (), która służy do przetwarzania czekających żądań anulowania w synchronicznie anulował -nym wątku. Trzeba ją wywoływać okresowo podczas długich obliczeń w funkcji wątku, w miejscach, gdzie można wątek przerwać bez wycieku zasobów lub innych niepożądanych efektów.
Powłoka bash jest najpopularniejszą, a zarazem domyślną powłoką systemu Linux. W porównaniu do podstawowej wersji powłoki Bourne’a, bash (czyli Bourne--Again Shell) zawiera wiele zaawansowanych możliwości zaczerpniętych od innych, chętnie stosowanych przez użytkowników systemu Unix powłok: csh oraz powłoki Kome’a (ksh). Poza funkcjami interpretera poleceń oraz zapewnienia interfejsu pomiędzy użytkownikiem a jądrem systemu powłoka jest również bogatym narzędziem programistycznym. Powłoki, zwłaszcza bash, mają możliwości podobne do języków programowania. Można w nich definiować zmiemie oraz przypisywać im wartości. Definicje zmiennych, polecenia Linuksa i struktury sterujące można umieszczać w pliku tekstowym (skrypcie), który następnie można uruchomić. Jest on interpretowany przez powłokę.
5.1. Sposoby uruchamiania skryptów powłoki bash
Istnieje kilka sposobów uruchamiania skryptu:
•. skrypt •source skrypt • skrypt •bash skrypt
Polecenia . oraz source umożliwiają interpretację skryptu przez bieżącą powłokę i nie wymagają ustawienia prawa x do pliku skryptu, a jedynie r. Aby uruchomić skrypt poprzez jego nazwę, plik musi mieć ustawione prawo x oraz r. Tak uruchomiony skrypt interpretowany jest przez nową powłokę. Polecenie bash skrypt to jawne wywołanie nowej powłoki, a plik skrypt jest argumentem -plikiem zawierającym dane do wykonania. Aby prześledzić cztery wymienione sposoby uruchamiania skryptów, zdefiniuj dwie zmienne powłoki: lokalną oraz środowiskową, wykonując w powłoce bash polecenia:
$ zmlok=cos $ zmsrod=cossrod $ export zmsrod
Na podstawie prac [3, 6, 7, 9],