Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практтическая часть. ОС.docx
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
101.13 Кб
Скачать
  1. Вывод содержимого файла на экран. Применение фильтра для организации постраничного вывода. Перенаправления вывода команды в файл с перезаписью и без перезаписи файла. Очистка экрана.

Вывод содержимого файла на экран

Формат вызова:

Вывод содержимого всего файла без пауз между страницами

TYPE < путь к файлу >

Вывод с паузой после отображения каждой страницы

MORE <путь к файлу>

Использование конвейера и потоков ввода/вывода

По умолчанию, программы и команды MSDOS и Windows осуществляют вывод данных на экран, а ввод данных – с клавиатуры. При необходимости этот порядок можно изменить. Для этого используются специальные символы: < (знак меньше), > (знак больше) и | (вертикальная черта). В одной команде можно комбинировать несколько этих символов.

Рассмотрим действие этих символов:

1) Знак «меньше» осуществляет перенаправления потока ввода данных с клавиатуры на указанный файл (в качестве файла может быть также один из специальных, например AUX ).

Пример:

Поиск строки в потоке ввода из файла CONFIG.SYS

FIND /I "DEVICE=" < C:\CONFIG.SYS

2) Знак «больше» осуществляет перенаправление потока вывода данных с экрана в указанный файл (в качестве файла может быть также один из специальных, например NUL ).

Примеры:

Подавление вывода всех сообщений команды:

COPY CONFIG.SYS CONFIG.OLD >NUL

Перенаправление вывода всех сообщений в текстовый файл:

DIR *.jpg >Pictures.txt

Вывод текстового сообщения в файл (с перезаписью этого файла)

@ ECHO Hello! > message.txt

Вывод текстового сообщения в файл (без перезаписи этого файла)

@ECHO Good bye! >>message.txt

3) Знак «вертикальная черта» осуществляет коммутацию потока вывода первой команды с потоком ввода второй.

Примеры:

Ответ « Y » на запрос команды об уверенности, что диск надо форматировать

ECHO Y|FORMAT D:

Постранично вывести перечень файлов в каталоге Windows

DIR C:\Windows|MORE

Ожидать ввода текста с клавиатуры и сохранить его в файл CONFIG.SYS (выход из режима ввода текста – ввод символа Ctrl - Z )

TYPE CON > CONFIG.SYS

Очистка экрана

Формат вызова:

CLS

  1. Работа с файловыми потоками. Создание. Вывод в поток. Чтение из потока.

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

Каждый файловый поток должен иметь имя. Один файл может иметь сразу несколько файловых потоков. При копировании файлов, имеющих файловые потоки в файловую систему, не имеющую их поддержки (например, FAT ), эти потоки скопированы не будут.

Доступ к файловому потоку осуществляется через имя основного файла. Например, основной файл имеет имя Movie1.avi , имя файлового потока Subtitles. Доступ к файловому потоку в этом случае осуществляется через имя Movie1.avi:Subtitles .

Непосредственный доступ из проводника Windows и прикладных программ к файловым потокам невозможен. Файловые потоки также не видны при просмотре содержимого каталогов средствами Windows (то есть через Windows Explorer , диалоги открытия/сохранения и т.д.). Самый простой путь получить доступ к файловому потоку – создать на него файловую ссылку, после чего к нему можно будет обращаться из прикладных программ.

Использование файловых потоков

Доступ к файловому потоку осуществляется через имя основного файла, например: Document.doc:Keywords.txt.

Как можно работать с файловыми потоками:

1) Из команд операционной системы используя операции перенаправления потоков ввода/вывода

Примеры:

Создание пустого файлового потока с именем Stream у файла File.txt:

TYPE NUL > File.txt:Stream

Вывод текстовой строки в файловый поток:

ECHO Sample string >> File.txt:Stream

2) С помощью ссылки (мягкой или жесткой)

Пример:

Создание мягкой ссылки с именем LinkToStream.txt на поток File.txt:Stream

MKLINK LinkToStream.txt File.txt:Stream

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

Если требуется снова получить доступ к файловому потоку – необходимо снова создать ссылку на него.

3) С помощью функций API операционной системы, используя их в своей программе

Примеры на языке C :

Создание потока и запись в него:

#include <windows.h>

int main()

{

DWORD dwRet;

HANDLE hStream =

CreateFile( "testfile:stream", GENERIC_WRITE, FILE_SHARE_WRITE,

NULL, OPEN_ALWAYS, NULL, NULL );

WriteFile( hStream, "Sample String", 17, &dwRet, NULL );

CloseHandle(hStream);

return 0;

}