Категория
Информатика
Тип
доклад
Страницы
3 стр.
Дата
06.03.2013
Формат файла
.doc — Microsoft Word
Архив
168440.zip — 8.37 kb
  • cache-perexvat-tekushhego-ustrojstva_168440_1.doc — 34.5 Kb
  • Readme_docus.me.txt — 125 Bytes
Оцените работу
Хорошо  или  Плохо


Текст работы

Евгений Каратаев

Эта
заметка описывает программный перехват ввода-вывода текущего устройства в
Cache'. Неудобство стандартных устройств mumps, а точнее определенного их
поведения состоит в том, что если выполняется программный код, осуществляющий
ввод-вывод через него, то этот процесс сторонним кодом неуправляем иначе как
установкой возможных опций устройству. В то время как в некоторых случаях очень
нужно иметь возможность выполнить так называемый унаследованный (legacy) код,
который оперирует текущим устройством, но при этом в самих операциях
ввода-вывода произвести дополнительные действия.

Ситуация
примерно аналогична вводу-выводу в сишном стиле и в стиле C++, когда в первом
случае мы можем открыть файл и передать его коду, а во втором случае мы можем
создать объект ввода-вывода и переопределить для него операции чтения - записи.

Для
перехвата операций ввода-вывода текущего устройства нужно

Сделать
отдельную рутину, в которой прописать функции, вызываемые при операциях
ввода-вывода.

Указать
текущему устройству эту рутину как мнемоническую в команде use

Включить
перенаправление для текущего устройства

В
функциях переопределяющих операции ввода-вывода можно использовать штатное
поведение текущего устройства если отключить перенаправление и при выходе из
обработчика снова его включить.

Рутина-перехватчик
должна реализовать на свое усмотрение метки

rstr(len,to) Чтение с опциональным указанием
заданной длины и таймаута
rchr(to) Чтение номера символа
wstr(expr) Запись строки W expr
wchr(expr) Запись символа W *expr
wtab(expr) Запись пропуска W ?expr
wnl Перевод строки W !
wff Очистка экрана W #



Ваше мнение



CAPTCHA