Другая разновидность физических файлов — это устройства MS-DOS. MS-DOS не делает особого различия между «традиционными» файлами и устройствами (портами коммуникаций). Устройства имеют свои фиксированные имена и во многом схожи с файлами: имя устройства, например, может встать на место имени файла на диске при копировании. Имена устройств

- 222 -

MS-DOS и необходимые замечания по ним сведены в табл. 12.1.

Таблица 12.1

Имя

Расшифровка устройства

Примечание

CON

Консоль (клавиатура и экран)

Ввод из CON — это чтение с клавиатуры, а вывод в CON — это запись на экран

LPT1 LPT2 LPT3

Параллельные порты (типа Centronix) номер 1…3 (если установлены)

Через эти имена файлов происходит вывод данных на принтеры или другие устройства с интерфейсом типа Centronix

PRN

Принтер. Синоним имени LPT1

Имя обращения к принтеру, включенному в порт LPT1

COM1 COM2

Последовательные порты (типа RS-232) номер 1..2 (если установлены)

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

AUX

Синоним имени COM1

Файл-устройство COM1

NUL

Фиктивное устройство

Это бездонный файл, принимающий что угодно, но всегда пустой

Физические файлы-устройства организуются как текстовые файлы, и для нормальной работы их надо связывать с текстовыми логическими файлами. Хотя, если понадобится, можно устанавливать связь и с бестиповымн файлами (например, при работе с 'COM1' или 'COM2').

Как видно из табл. 12.1, у устройства есть свои особенности. Например, 'CON' — одно имя двух устройств. Если логический файл, которому назначено устройство 'CON', открывается для чтения, то в действительности он связывается с клавиатурой, но если для записи, то — с экраном! В то же время 'LPT1'...'LPT3', 'PRN', а с ним и 'NUL', могут быть открыты только для записи в них, а если все же они открыты для чтения, то сразу же возвращают признак конца файла. Никакого сбоя при этом не будет. Серийные порты — двусторонние. Позволяют считывать из себя и принимать данные. «Файл-пустышка» 'NUL' нужен для отладки программ, использующих другие порты.

Имена физических файлов-устройств должны быть записаны так же, как и в таблице: без точек и прочих знаков после них. Регистр букв роли не играет: 'CON', 'con' — консоль, 'PRN' — принтер, но

- 223 -

'CON.' — это файл на текущем диске, с именем CON и пустым расширением. Можно приписывать после имени устройства двоеточие, но лучше обходится без этого. Так, 'PRN' и 'PRN:' — это одно и то же.

Не определена такая структура данных, как файл в памяти ПЭВМ. Любой объявленный логический файл имеет смысл только после связи с внешним физическим файлом.

Турбо Паскаль позволяет программировать собственные механизмы для работы с периферией ПЭВМ или виртуальными устройствами — так называемые драйверы текстовых устройств. Но для этого надо вручную переписать почти всю библиотеку процедур работы с файлами. Заинтересованные читатели могут найти нужную им информацию в справочном руководстве по Турбо Паскалю [2].

<p>12.3. Понятие буфера ввода-вывода</p>

С файловой системой Турбо Паскаль связано понятие буфера ввода-вывода. Может показаться странным, но если выполнилась команда записи данных в файл на диске, то это вовсе не означает, что на диске действительно появились новые данные. Вывода данных (как впрочем, и ввод), осуществляется через буфер. Буфер – это область в памяти, отводимая при открытии файла. При записи в файл вся информация сначала направляется в буфер и там накапливается до тех пор, пока весь объем буфера не будет заполнен. Только после этого или после специальной команды сброса буфера происходит передача данных по предназначению: на диск, порт. Аналогично при чтении из файла считывает не столько, сколько запрашивается, с сколько уместится в буфер. И если, например, считывается 4 числа, а буфер вмещает 64, то следующие 60 чисел будут считаны уже из буфера.

Механизм буферизации позволяет более быстро и эффективно обмениваться информацией с различными устройствами. Для текстовых и бестиповых файлов можно устанавливать размер буфера по своему усмотрению.

Вывод текстовой информации на экран реализован так, что эффект буферизации исчезает автоматически, иначе компьютер постоянно «недоговаривал» бы свои ответы.

<p>12.4. Файловые типы Турбо Паскаля</p>

Турбо Паскаль поддерживает три файловых типа:

— текстовые файлы (типа Text);

- 224 -

Перейти на страницу:

Поиск

Похожие книги