ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Cache ': перехоплення поточного пристрою
         

     

    Інформатика, програмування

    Cache ': перехоплення поточного пристрою

    Євген Каратаєв

    Ця замітка описує програмний перехоплення введення-виведення поточного пристрою в 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 #     

    Шаблон рутини приблизно такий:

    rstr (len, to)

    D $ ZU (82,12,0)

    if $ D (len) & & $ D (to) d

    . ; Перехоплення

    . R data # len: to

    e i $ D (len) d

    . ; Перехоплення

    . R data # len

    e i $ D (to) d

    . ; Перехоплення

    . R data: to

    e d

    . ; Перехоплення

    . R data

    D $ ZU (82,12,1)

    ; перехоплення

    Q $ G (data)

    rchr (to)

    D $ ZU (82,12,0)

    i $ d (to)

    . ; Перехоплення

    . R * data: to

    . ; Перехоплення

    e d

    . ; Перехоплення

    . R * data

    . ; Перехоплення

    D $ ZU (82,12,1)

    ; перехоплення

    Q data

    // W expr

    wstr (expr)

    D $ ZU (82,12,0)

    ; перехоплення

    W expr

    D $ ZU (82,12,1)

    Q

    // W * expr

    wchr (expr)

    D $ ZU (82,12,0)

    ; перехоплення

    W * expr

    D $ ZU (82,12,1)

    Q

    // W? expr

    wtab (expr)

    D $ ZU (82,12,0)

    ; перехоплення

    W? expr

    D $ ZU (82,12,1)

    Q

    // W!

    wnl

    D $ ZU (82,12,0)

    ; перехоплення

    W!

    D $ ZU (82,12,1)

    Q

    // W #

    wff

    D $ ZU (82,12,0)

    ; перехоплення

    W #

    D $ ZU (82,12,1)

    Q

    Після чого можна користуватися, вказуючи прехватчік:

    u dev:: "^ ІМЯРУТІНИ"; вказуємо яку мнемоніки використовувати

    D $ ZU (82,12,1); реально включаємо прапор використання

    d normal (); що буде писати в поточний девайс

    D $ ZU (82,12,0); перед закриттям девайса повертаємо прапорець

    c dev

    Крім програмного призначення перехоплення для обробки виводу успадкованих коду можна використовувати також і інші можливості: спулера, запис-читання зовнішніх файлів, Взаємодія між процесами.

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://karataev.nm.ru/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status