- •1.1. Форматный ввод/вывод
- •1.2. Нефайловая работа с терминалом
- •1.3. Управление распределением динамической памяти
- •1.4. Работа со строками и символами
- •1.5. Средства отладки
- •5. Язык си. Руководство оператора.
- •5.1. Стадии подготовки программы
- •5.2. Проблемы промежуточных файлов
- •5.3. Эмуляция eis
- •5.5. Инициализация fpu
- •5.6. Форматный вывод чисел с плавающей запятой
- •5.7. Оптимизация
- •5.8. Компоновка
- •5.9. Создание автономных программ
- •5.10. Сообщения оператору
- •6.1. Ввод и обработка командной строки
- •6.2 Управление стартовыми действиями
- •7. Пакет работы с терминалом
- •7.1. Обновление экрана
- •7.2. Запуск
- •7.3. Вывод
- •7.4. Ввод
- •7.5. Завершение работы
- •7.6. Оптимизация движения курсора
- •9. Краткое описание компилятора си фирмы dec.
- •10. Перечень ошибок
6.2 Управление стартовыми действиями
Существует возможность при помощи определения в программе некоторых глобальных переменных управлять параметрами действий, выполняемых при старте программы:
Можно подавить разрешение ввода символов нижнего регистра перед вводом командной строки (распространяется и на дальнейшее выполнение программы). Для этого необходимо определить в программе $$nolc = 1;
Можно изменить вид приглашения для ввода командной строки, явно задав: char $$prom[]="...";
Строка подсказки завершается символом '\200' для того, чтобы при выводе подсказки (по .GTLIN) не произошел переход на новую строку. Можно запретить ввод командной строки (и печать приглашения). Для этого необходимо определить в программе
$$narg = 1;
При запрещении ввода командной строки реакция исполнительной системы точно такая же, как при вводе пустой командной строки.
7. Пакет работы с терминалом
Данный документ описывает пакет библиотечных функций,
позволяющих пользователю для различных типов терминалов оптимально обновлять экран осуществлять ввод с терминала с ориентацией на экран оптимально перемещать указатель от одной точки экрана к другой. Вся информация о возможностях и командах конкретного типа терминала сосредоточена в одном файле и легко модифицируема.
Идея данного пакета - дать программисту возможность выполнять стандартным образом наиболее общий тип функций, зависящих от терминала. Пакет состоит из 3-х частей:
обновление экрана;
ввод и обновление экрана при вводе;
оптимизация движения курсора.
Можно использовать оптимизацию движения курсора без использования первых двух частей пакета. Обновление экрана и ввод можно осуществлять без изучения функций оптимизации движения курсора.
В данном документе поддерживается следующая терминология:
- окно (window)
Внутреннее представление, содержащее образ части экрана терминала в определенный момент времени. Это "окно" может охватывать весь экран или часть его (вплоть до одного символа);
- терминал или экран терминала
То, что в настоящее время пользователь видит на экране терминала.
- экран (screen)
Поднабор окон, которые по размерам равны экрану терминала, т.е. они начинаются в верхнем левом углу и заканчиваются в нижнем правом. Одно из них, stdscr, автоматически обеспечивается для пользователя.
Для того, чтобы использовать библиотеку, необходимо одной из первых строк программы пользователя иметь строку:
#include <curses.h>
Файл "curses.h" содержит различные необходимые определения, а также включает файл "stdio.h". При компоновке пользователь должен указать дополнительно библиотеку, содержащую описываемые функции и размещенную обычно в файле CSLIB.OBJ.
В файле curses.h:
описаны (как внешние) описатели терминала (см. "информация о терминале" и приложение 1);описан тип "WINDOW", описывающий дескриптор окна.
определены "OK" (1) и "ERR" (0) - мнемоники для кодов удачного и неудачного завершения функций пакета.
описаны (как "extern WINDOW *") curscr и stdscr
определен логический тип - "bool" (как "char")
при использовании данного пакета имена функций могут быть набраны на любом регистре, имена макросов - на нижнем. Макросы при описании помечены /* + */