20.1. Начало работы
20.1. Начало работы
Ниже приведен список тех действий, которые вы можете производить над VC. Некоторые из них относятся только к отдельной виртуальной консоли (как правило, к той, которая активна в данный момент); некоторые используются для всех работающих VC.
• Найти текущую VC.
• Инициировать переключение VC.
• Отклонить или принять переключение VC.
• Полностью запретить переключение VC.
• Найти неиспользуемую VC.
• Динамически назначить или освободить память VC в ядре.
• Генерировать простые звуки.
Во всех случаях необходима одна и та же подготовительная работа. Вы будете применять команды ioctl() на /dev/tty — поэтому нужно начать с включения заголовочных файлов, которые определяют аргументы ioctl().
#include <signal.h>
#include <sys/ioctl.h>
#include <sys/vt.h>
#include <sys/kd.h>
#include <sys/param.h>
После этого нужно открыть /dev/tty.
if ((fd = open("/dev/tty", O_RDWR)) < 0) {
perror("myapp: не удается открыть /dev/tty");
exit(1);
}
Если вы обнаруживаете, что не можете открыть /dev/tty, то, возможно, у вас проблемы с полномочиями: устройство /dev/tty должно быть доступно для чтения и записи всем без исключения.
Обратите внимание на то, что в качестве дополнения к ioctl.h существуют два главных заголовочных файла, в которых определены вызовы ioctl(), обрабатывающие VC. В файле vt.h определяются вызовы, начинающиеся с букв VT, и реализуется управление виртуальным терминалом (экраном), как частью виртуальных консолей. В файле kd.h определены вызовы, которые начинаются с KD и обрабатывают клавиатуру и шрифты. Почти все содержимое kd.h можно проигнорировать, поскольку эти функциональные возможности прекрасно инкапсулируются в утилитах. Однако оно окажется весьма полезным при выдаче звуковых сигналов консолью на управляемых частотах.
Данные основные заголовочные файлы также определяют структуры, которые используются с ioctl().
Структура vt_mode применяется для поиска и изменения текущей VC:
struct vt_mode {
char mode;
char waitv;
short relsig;
short acqsig;
short frsig;
};
• Переменная mode принимает одно из двух значений: VT_AUTO (вынуждает ядро автоматически переключать консоли во время нажатия клавиш или при получении запроса от программы на переключение VC) или VT_PROCESS (предписывает ядру запрашивать подтверждение прежде чем переключать консоли).
• Переменная waitv не используется, однако для совместимости с SVR4 ей нужно присвоить значение 1.
• Переменная relsig именует сигнал, который должно сгенерировать ядро для передачи в процесс запроса на освобождение VC.
• Переменная acqsig именует сигнал, который должно сгенерировать ядро для извещения процесса о том, что он получает VC.
• Переменная frsig не используется, однако для совместимости с SVR4 ей нужно присвоить значение 0.
struct vt_stat {
unsigned short v_active;
unsigned short v_signal;
unsigned short v_state;
};
• Переменная v_active хранит количество VC, активных в данный момент.
• Переменная v_signal не реализована.
• Переменная v_state хранит битовую маску, сообщающую, какие из первых 16 VC открыты в данный момент (в системе Linux поддерживается до 63 VC). В системе Linux редко появляется смысл консультироваться с данной маской, поскольку она недостаточно велика, чтобы содержать полную информацию. В большинстве случаев вам понадобится знать только номера ряда открытых консолей, которые вы можете извлечь с помощью функции VT_OPENQRY (рассматривается далее в этой главе).
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Начало работы
Начало работы Понимание требований Один из главных уроков, который вы должны извлечь из данной книги, заключается в том, что изучение существующих ограничений – это первый и наиболее важный этап. Мы должны найти критерии, которые сделают наш проект максимально успешным
20.1. Начало работы
20.1. Начало работы Ниже приведен список тех действий, которые вы можете производить над VC. Некоторые из них относятся только к отдельной виртуальной консоли (как правило, к той, которая активна в данный момент); некоторые используются для всех работающих VC.• Найти текущую
Начало работы
Начало работы Каким должен быть ваш первый слайд?Простым? Тогда щелкаем в поле Заголовок слайда и пишем слово Презентация, а вместо Подзаголовок слайда набираем Кадр первый (рис. 3.4). Рис. 3.4. Самый простой первый слайд Как вы понимаете, текст заголовка и подзаголовка
Глава 1 Начало работы
Глава 1 Начало работы Как устроена база данных Microsoft AccessПроектирование структуры данныхЭтапы работы с базой данныхПриступим к работеПользовательский интерфейс Access 2007Настройка элементов интерфейсаСправочная система Access 2007РезюмеПрограмма Microsoft Access 2007 представляет
Начало работы
Начало работы При обзоре программы Excel будем следовать тем же принципам, что и при рассмотрении Word: будем пропускать описание простейших операций и тонкостей, которые не нужны в традиционной офисной работе, то есть постараемся освоить основные функции Excel и научимся
Начало работы
Начало работы После запуска AutoCAD выводится диалоговое окно начала работы Startup (рис. 1.1).В диалоговом окне Startup пользователю предлагается четыре кнопки, в зависимости от выбора которых меняется содержимое диалогового окна. Open a Drawing – для открытия ранее созданного чертежа.
Начало работы
Начало работы После запуска AutoCAD выводится диалоговое окно начала работы Startup (рис. 1.1). Рис. 1.1. Диалоговое окно начала работыВ диалоговом окне Startup пользователю предлагается четыре кнопки, в зависимости от выбора которых меняется содержимое диалогового окна: Open a Drawing –
Начало работы
Начало работы Итак, прежде всего нужно создать новый проект для смартфона под управлением Windows Mobile 5.0 с использованием платформы .NET Compact Framework 2.0. Этот проект должен получить имя
2.4. Начало работы и ее завершение
2.4. Начало работы и ее завершение После запуска система отобразит окно (рис. 2.18) для ввода имени пользователя и пароля (если при установке системы вы не выбрали опцию Входить в систему автоматически). Введите те данные, которые вы указали при установке системы, и перед вами
13.2.1. Начало работы
13.2.1. Начало работы Если вы ранее работали с GIMP, то знаете, что при первом запуске GIMP просил установить несколько параметров. В Ubuntu 10 включена самая последняя версия GIMP (2.6.8), которая более не требует установки параметров при первом запуске. В случае необходимости вы всегда
Начало работы
Начало работы После запуска AutoCAD выводится диалоговое окно начала работы Startup (рис. 1.1).В диалоговом окне Startup пользователю предлагается четыре кнопки, в зависимости от выбора которых меняется содержимое диалогового окна: Open a Drawing – для открытия ранее созданного
Глава 8 Начало работы
Глава 8 Начало работы 8.1. Интерфейс программы8.2. Организация рабочего пространства8.3. Навигация в Photoshop8.4. Создание файла8.5. Открытие файла8.6. Сохранение файла8.7. Команды Import (Импорт), Place (Поместить) и Export (Экспорт)8.8. Вызов Adobe Bridge8.9.
Начало работы
Начало работы Для начала работы с Microsoft Word его необходимо загрузить. Сделать это можно несколькими способами.• Пуск ? Программы ? Microsoft Word.• В панели Office щелкнуть по кнопке • Кликнуть по любому файлу с таким значком В результате на экране монитора появится окно Microsoft
Начало работы
Начало работы Для начала работы с Microsoft Excel его необходимо загрузить. Сделать это можно несколькими способами.• Пуск ? Программы ? Microsoft Excel.• В панели Office щелкнуть на кнопке • Кликнуть на любом файле с таким значком В результате на экране монитора появится окно Microsoft
Начало работы
Начало работы В качестве программы, обеспечивающей работу электронной почты, мы изучим программу Outlook Express, которая входит в стандартный набор программ Microsoft Office.Для начала работы с Outlook Express ее нужно – вы уже сами догадались! – правильно, загрузить. Сделать это можно