SIGVTALRM — сигнал на POSIX-сумісних платформах, який посилається в процесу при вичерпанні віртуального таймера. Символьна змінна SIGVTALRM оголошена у заголовному файлі signal.h
. Символьні імена для процесів використовуються через те, що їхні номери залежать від конкретної платформи.
Опис | Вичерпання віртуального таймера (може бути перехопленим або проігнорованим) |
---|---|
Дія за замовчуванням | Завершує процес |
SA_SIGINFO macros | |
None |
Етимологія
SIG є загальноприйнятий префіксом для назв сигналів. VT (англ. virtual) — віртуальний, ALRM (англ. alarm) — тривога, сигнал будильника.
Використання
Віртуальний інтервальний таймер може бути встновлений через системний виклик setitimer().
Віртуальний інтервальний таймер виконує відлік часу лише тоді, коли процес є активним. На відміну від нього (невіртуальний) інтервальний таймер, виконує відлік реального часу. Це значить, що на процесі, який знаходиться в стані очікування (спить), віртуальний інтервальний таймер буде зупиненим.
Приклад
Програма мовою C, яка активує обробник віртуального таймера через 2 секунди від початку своєї роботи і надалі — через кожні 0.25 секунди:
#include <stdio.h> #include <signal.h> #include <sys/time.h> void alarm_handler(int sig) { printf("vt alarm! %d\n", sig); } int main(int argc, char *argv[]) { signal(SIGVTALRM, alarm_handler); /* встановлюємо обробник */ struct itimerval timer; timer.it_value.tv_sec = 2; timer.it_value.tv_usec = 0; timer.it_interval.tv_sec = 0; timer.it_interval.tv_usec = 250000; setitimer(ITIMER_VIRTUAL, &timer, NULL); while(1); // getc(stdin); return 0; }
Якщо нескінчений цикл (while(1);
) замінити на введення зі стандартного пристрою з очікуванням (getc(stdin);
), то віртуальний інтервальний таймер не спрацює через те, що процес буде перебувати в стані очікування вводу (тобто — процес буде неактивним).
Див. також
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
SIGVTALRM signal na POSIX sumisnih platformah yakij posilayetsya v procesu pri vicherpanni virtualnogo tajmera Simvolna zminna SIGVTALRM ogoloshena u zagolovnomu fajli signal h Simvolni imena dlya procesiv vikoristovuyutsya cherez te sho yihni nomeri zalezhat vid konkretnoyi platformi SIGVTALRMOpisVicherpannya virtualnogo tajmera mozhe buti perehoplenim abo proignorovanim Diya za zamovchuvannyamZavershuye procesSA SIGINFO macrosNoneEtimologiyaSIG ye zagalnoprijnyatij prefiksom dlya nazv signaliv VT angl virtual virtualnij ALRM angl alarm trivoga signal budilnika VikoristannyaVirtualnij intervalnij tajmer mozhe buti vstnovlenij cherez sistemnij viklik setitimer Virtualnij intervalnij tajmer vikonuye vidlik chasu lishe todi koli proces ye aktivnim Na vidminu vid nogo nevirtualnij intervalnij tajmer vikonuye vidlik realnogo chasu Ce znachit sho na procesi yakij znahoditsya v stani ochikuvannya spit virtualnij intervalnij tajmer bude zupinenim PrikladPrograma movoyu C yaka aktivuye obrobnik virtualnogo tajmera cherez 2 sekundi vid pochatku svoyeyi roboti i nadali cherez kozhni 0 25 sekundi include lt stdio h gt include lt signal h gt include lt sys time h gt void alarm handler int sig printf vt alarm d n sig int main int argc char argv signal SIGVTALRM alarm handler vstanovlyuyemo obrobnik struct itimerval timer timer it value tv sec 2 timer it value tv usec 0 timer it interval tv sec 0 timer it interval tv usec 250000 setitimer ITIMER VIRTUAL amp timer NULL while 1 getc stdin return 0 Yaksho neskinchenij cikl while 1 zaminiti na vvedennya zi standartnogo pristroyu z ochikuvannyam getc stdin to virtualnij intervalnij tajmer ne spracyuye cherez te sho proces bude perebuvati v stani ochikuvannya vvodu tobto proces bude neaktivnim Div takozhSIGALRM