Читайте также
Пример: использование функции фильтра
Программа 4.3 представляет собой каркас программы, иллюстрирующей обработку исключений и завершения выполнения, в которой используется функция фильтра. Программа предлагает пользователю указать тип исключения, после чего
Пример: использование базовых указателей
Рассмотренные выше примеры относились к сортировке файлов в различных ситуациях. Вместе с тем, должно быть очевидным, что наша цель состояла не в обсуждении методик сортировки, а в демонстрации применения различных методов
Пример: использование указательных типов данных
Аргументом потока, передаваемым функции потока при вызове CreateThread и _beginthreadex (см. главу 7), является указатель типа PVOID. Иногда программист может захотеть передать функции потока только целочисленное значение, указывающее,
Частота импульсов таймера: HZ
Частота системного таймера (частота импульсов, tick rate) программируется при загрузке системы на основании параметра ядра НZ, который определен с помощью директивы препроцессора. Значение параметра HZ отличается для различных поддерживаемых
Обработчик прерываний таймера
Теперь, когда мы разобрались, что такое jiffies и HZ, а также какова роль системного таймера, рассмотрим реализацию обработчика прерываний системного таймера. Обработчик прерываний таймера разбит на две части: часть, зависимую от аппаратной
Источники прерываний таймера
На этом мы, пожалуй, закончим наш краткий экскурс по стране таймеров и перейдем к вещам, которые уже не так очевидны.Откуда возникают прерывания таймера? На рисунке ниже приведены аппаратные компоненты (и некоторые характерные для PC значения
Создание таймера
Первый этап — это создание таймера с помощью функции timer_create():#include <time.h>#include <sys/siginfo.h>int timer_create(clockid_t clock_id, struct sigevent *event, timer_t *timerid);Аргумент clock_id сообщает функции timer_create(), на какой временном базисе вы формируете таймер. Это вещь из области POSIX —
Обработка прерываний таймера
Каждый компьютер имеет аппаратный таймер или системные часы, которые генерируют аппаратное прерывание через фиксированные интервалы времени. Временной интервал между соседними прерываниями называется тиком процессора или просто тиком (CPU
Пример: использование функций gethostbyname и getservbyname
Теперь мы можем изменить код нашего TCP-клиента времени и даты, показанный в листинге 1.1, так, чтобы использовать функции gethostbyname и getservbyname и принимать два аргумента командной строки: имя узла и имя службы. Наша программа
Пример 9-3. Еще один пример ограничения времени ожидания ввода от пользователя
#!/bin/bash# timeout.sh# Автор: Stephane Chazelas,# дополнен автором документа.INTERVAL=5 # предел времени ожиданияtimedout_read() { timeout=$1 varname=$2 old_tty_settings=`stty -g` stty -icanon min 0 time ${timeout}0 eval read $varname # или просто read $varname
Пример 9-4. Ограничение времени ожидания команды read
#!/bin/bash# t-out.sh TIMELIMIT=4 # 4 секундыread -t $TIMELIMIT variable <&1echoif [ -z "$variable" ]then echo "Время ожидания истекло."else echo "variable = $variable"fi exit 0$UIDuser id numberUID (идентификатор) текущего пользователя, в соответствии с /etc/passwdЭто реальный UID текущего
Пример 10-24. Использование case
#!/bin/bashecho; echo "Нажмите клавишу и затем клавишу Return."read Keypresscase "$Keypress" in [a-z] ) echo "буква в нижнем регистре";; [A-Z] ) echo "Буква в верхнем регистре";; [0-9] ) echo "Цифра";; * ) echo "Знак пунктуации, пробел или что-то другое";;esac # Допускается указыватль
Пример 22-9. Использование локальных переменных при рекурсии
#!/bin/bash# факториал# ---------# Действительно ли bash допускает рекурсию?# Да! Но...# Нужно быть действительно дубинноголовым, чтобы использовать ее в сценариях# на языке командной
Пример использования таймера
Данная программа выводит 1 каждые 100 миллисекунд в течение 3 секунд:uses Timers;procedure TimerProc;beginwrite(1);end;begin var t := new Timer(100,TimerProc);t.Start;Sleep(3000);end.Вызов Sleep здесь обязателен, иначе программа после создания таймера сразу закончится, и обработчик таймера ни