Написание, компиляция и прогон программы, осуществляющей перемещение указателя текущей позиции внутри открытого файла — КиберПедия 

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Написание, компиляция и прогон программы, осуществляющей перемещение указателя текущей позиции внутри открытого файла

2017-06-11 384
Написание, компиляция и прогон программы, осуществляющей перемещение указателя текущей позиции внутри открытого файла 0.00 из 5.00 0 оценок
Заказать работу

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

Директории. Логическая структура файлового архива

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

 

Рис. 11.1. Формат каталога

Запись в каталоге о файле содержит имя файла, некоторые атрибуты (длина имени, временная метка) и ссылку на запись в главной файловой таблице, необходимую для нахождения блоков файла.

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

 

Рис. 11.2. Иерархическая древовидная структура файловой системы

Поскольку имена файлов, находящихся в разных каталогах, могут совпадать, уникальность имени файла на диске обеспечивается добавлением к собственному имени файла списка вложенных каталогов, содержащих данный файл. Так образуется хорошо известное абсолютное или полное имя (pathname), например, \Games\Heroes\heroes.exe. Таким образом, использование древовидных каталогов минимизирует сложность назначения уникальных имен.

Чтобы иметь возможность работать с собственными именами файлов, используют концепцию рабочей или текущей директории, которая обычно входит в состав атрибутов процесса, работающего с данным файлом. Тогда на файлы в такой директории можно ссылаться только по имени. Кроме того ОС поддерживает обозначения '.' - для текущей директории и '..' - для родительской.

В системе поддерживается большое количество Win32-функций для манипуляции с каталогами, их полный перечень имеется в MSDN. В частности, для создания каталогов можно использовать функцию CreateDirectory. Вновь созданная директория включает записи с именами '.' и '..', однако считается пустой. Для работы с текущим каталогом можно использовать функции GetCurrentDirectory и SetCurrentDirectory. Работа с этими функциями проста и не нуждается в специальных разъяснениях.

Прогон программы, задача которой создать каталог на диске и сделать его текущим

#include <windows.h>

#include <stdio.h>

 

void main(void) {

 

int iRet = 0;

char Buf[512];

int bufSize = 512;

 

iRet = GetCurrentDirectory(bufSize, Buf);

printf("iRet = %d, current directory %s\n", iRet, Buf);

 

iRet = CreateDirectory("f:\\tmp1", NULL);

if(!iRet) printf("CreateDirectory error\n");

 

iRet = SetCurrentDirectory("f:\\tmp1");

if(!iRet) printf("SetCurrentDirectory error\n");

 

iRet = GetCurrentDirectory(bufSize, Buf);

printf("iRet = %d, current directory %s\n", iRet, Buf);

}

Приведенная программа выводит на экран название текущего каталога, создает каталог "tmp1" на диске "F:", делает его текущим и выводит на экран его название в качестве текущего каталога.

Самостоятельное упражнение

На основании предыдущей программы рекомендуется написать программу, которая создает каталог в родительской директории и копирует в него какой-либо файл с помощью функции CopyFile.


Поделиться с друзьями:

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

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

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.