Składnia
niepodpisany alarm (niepodpisany int sekundy)Funkcja jest zdefiniowana w unistd.H plik nagłówka.
Argumenty
Funkcja bierze jeden argument, sekundy. Po sekundy minęły sekundy od czasu żądania alarm() funkcja, Sigalrm Sygnał jest generowany. Domyślne zachowanie po otrzymaniu Sigalrm to zakończenie procesu. Ale możemy złapać i poradzić sobie z sygnałem. Zobacz szczegóły obsługi sygnału.
alarm() Funkcja zwróci wartość nie zerową, jeśli wcześniej ustawiono inny alarm, a wartość to liczba sekund pozostałych dla poprzedniego zaplanowanego alarmu z powodu dostarczonego. W przeciwnym razie alarm() zwróci zero.
Przykład 1.C:
#włączaćNa zrzucie ekranu wyjścia Przykład 1.C, Program jest uruchamiany za pomocą polecenia czasu, abyśmy mogli uzyskać przegląd czasu wykonywania programu. Zauważyliśmy, że w funkcji głównej nazywamy alarm() funkcja, zaplanowana na 2 sekundy. Tak więc dla pętli jest wykonywane, po 2 sekundach funkcji SIG_HANDLER i wykonanie funkcji głównej jest zatrzymywane. Po wykonaniu funkcji SIG_HANDLER, w głównej funkcji wykonania pętli jest wznawiane. Tutaj używamy funkcji snu do opóźnienia, abyśmy mogli zrozumieć przepływ wykonania. Pętla dla nieskończonej pętli, kiedy naciśniemy klawisz przerwania (Ctrl+C), wykonanie zatrzyma się.
Generowanie Sigalrm za pomocą sygnał() Funkcji nie można ułożyć. Tylko jeden Sigalrm pokolenie można zaplanować. Kolejne wezwania sygnał() Funkcja Zresetuj budzik procesu wywołania.
Przykład2.C :
#włączaćNa zrzucie ekranu wyjścia Przykład2.C, Widzimy, że program wykonał ponad 7 sekund, ale pierwszy alarm, który został zaplanowany po 4 sekundach, nie wywołuje funkcji obsługi. Drugi alarm, który został zaplanowany po 1 sekundzie, jest zresetowany alarm.
Jeśli wartość sekund argumentu wynosi zero, wówczas każde wcześniej zrobione żądanie alarmu jest anulowane.
Przykład3.C:
#włączaćNa zrzucie ekranu wyjścia Przykład3.C, Widzimy, że pierwszy alarm, który został zaplanowany po 2 sekundach, jest anulowany z powodu drugiego alarmu na 0 sekundy.
W Przykład4.C Zobaczymy, jak ciągle możemy ustawić alarm na co 2 sekundy.
Przykład4.C:
#włączaćNa zrzucie ekranu wyjścia Przykład4.C, Widzimy, że alarm jest ciągły co 2 sekundy. Zresetujemy alarm w funkcji SIG_HANDLER.
W Przykład5.C Zobaczymy, jak możemy opóźnić zaplanowany alarm. Użyjemy sygnału SIGINT do przerwania. Gdy użytkownik typu ctrl+c w klawiaturze, Sigint Sygnał wygeneruje.
Przykład5.C:
#włączaćNa zrzucie ekranu wyjścia Przykład5.C, Widzimy, że gdy typ użytkownika Ctrl+C alarm zostanie zresetowany 5 sekund. W tym programie wykorzystaliśmy tylko jedną funkcję obsługi dla dwóch różnych sygnałów, ale w funkcji obsługi sprawdzono, że dla którego sygnału jest wywoływana funkcja modułu obsługi.
Wniosek:
Widzieliśmy więc, jak można ustawić funkcję alarmu dla sygnału wyzwalającego, jak zresetować alarm, jak anulować już zaplanowany alarm.