Лекции.Орг
 

Категории:


Как ухаживать за кактусами в домашних условиях, цветение: Для кого-то, это странное «колючее» растение, к тому же плохо растет в домашних условиях...


Архитектурное бюро: Доминантами формообразования служат здесь в равной мере как контекст...


Деформации и разрушения дорожных одежд и покрытий: Деформации и разрушения могут быть только покрытий и всей до­рожной одежды в целом. К первым относит...

If константное выражение группа операций #elif константное выражение группа операций #else группа операций #endif



Отличие директив #ifdef/#ifndef заключается в том, что константное выражение может быть задано только с помощью #define.

У каждой директивы #if в исходном файле должна быть соответствующая закрывающая директива #endif. Между директивами #if и #endif может располагаться любое количество директив #elif, однако допускается не более одной директивы #else. Директива #else, если присутствует, должна быть последней перед директивой #endif.

Пример

#include <stdio.h>
#include <stdlib.h>
#define P 2
int main()

{

 

getchar system("chcp 1251");

system("cls");
#if P==1

printf("Выполняется ветка 1");
#elif P==2

printf("Выполняется ветка 2, P=%d", P);
#else

printf("Выполняется другая ветка, P=%d", P);
#endif ();

return 0;
}

Результат выполнения

 

Реализация функции задержки

#include <stdio.h>
#include <time.h>
void delay(int ms) // аргумент- требуемое время задержки в миллисекундах
{

int c = clock() + ms;

while(clock() < c);
}
int main()

{

printf("clock = %d\n", clock());

delay(1000);

printf("clock = %d\n", clock());

getchar();

return 0;
}

Результат выполнения

Назад

 

Работа с файлами

Для удобства обращения информация в запоминающих устройствах хранится в виде файлов.
Файл – именованная область внешней памяти, выделенная для хранения массива данных. Данные, содержащиеся в файлах, имеют самый разнообразный характер: программы на алгоритмическом или машинном языке; исходные данные для работы программ или результаты выполнения программ; произвольные тексты; графические изображения и т. п.
Каталог (папка, директория) – именованная совокупность байтов на носителе информации, содержащая название подкаталогов и файлов, используется в файловой системе для упрощения организации файлов.
Файловой системой называется функциональная часть операционной системы, обеспечивающая выполнение операций над файлами. Примерами файловых систем являются FAT (FAT – File Allocation Table, таблица размещения файлов), NTFS, UDF (используется на компакт-дисках).
Существуют три основные версии FAT: FAT12, FAT16 и FAT32. Они отличаются разрядностью записей в дисковой структуре, т.е. количеством бит, отведённых для хранения номера кластера. FAT12 применяется в основном для дискет (до 4 кбайт), FAT16 – для дисков малого объёма, FAT32 – для FLASH-накопителей большой емкости (до 32 Гбайт).

Рассмотрим структуру файловой системы на примере FAT32.

Файловая структура FAT32

Устройства внешней памяти в системе FAT32 имеют не байтовую, а блочную адресацию. Запись информации в устройство внешней памяти осуществляется блоками или секторами.
Сектор – минимальная адресуемая единица хранения информации на внешних запоминающих устройствах. Как правило, размер сектора фиксирован и составляет 512 байт. Для увеличения адресного пространства устройств внешней памяти сектора объединяют в группы, называемые кластерами.
Кластер – объединение нескольких секторов, которое может рассматриваться как самостоятельная единица, обладающая определёнными свойствами. Основным свойством кластера является его размер, измеряемый в количестве секторов или количестве байт.

Файловая система FAT32 имеет следующую структуру.

Нумерация кластеров, используемых для записи файлов, ведется с 2. Как правило, кластер №2 используется корневым каталогом, а начиная с кластера №3 хранится массив данных. Сектора, используемые для хранения информации, представленной выше корневого каталога, в кластеры не объединяются.
Минимальный размер файла, занимаемый на диске, соответствует 1 кластеру.

Загрузочный сектор начинается следующей информацией:

· EB 58 90 – безусловный переход и сигнатура;

· 4D 53 44 4F 53 35 2E 30 MSDOS5.0;

· 00 02 – количество байт в секторе (обычно 512);

· 1 байт – количество секторов в кластере;

· 2 байта – количество резервных секторов.

Кроме того, загрузочный сектор содержит следующую важную информацию:

· 0x10 (1 байт) – количество таблиц FAT (обычно 2);

· 0x20 (4 байта) – количество секторов на диске;

· 0x2С (4 байта) – номер кластера корневого каталога;

· 0x47 (11 байт) – метка тома;

· 0x1FE (2 байта) – сигнатура загрузочного сектора (55 AA).

Сектор информации файловой системы содержит:

· 0x00 (4 байта) – сигнатура (52 52 61 41);

· 0x1E4 (4 байта) – сигнатура (72 72 41 61);

· 0x1E8 (4 байта) – количество свободных кластеров, -1 если не известно;

· 0x1EС (4 байта) – номер последнего записанного кластера;

· 0x1FE (2 байта) – сигнатура (55 AA).

Таблица FAT содержит информацию о состоянии каждого кластера на диске. Младшие 2 байт таблицы FAT хранят F8 FF FF 0F FF FF FF FF (что соответствует состоянию кластеров 0 и 1, физически отсутствующих). Далее состояние каждого кластера содержит номер кластера, в котором продолжается текущий файл или следующую информацию:

· 00 00 00 00 – кластер свободен;

· FF FF FF 0F – конец текущего файла.

Корневой каталог содержит набор 32-битных записей информации о каждом файле, содержащих следующую информацию:

· 8 байт – имя файла;

· 3 байта – расширение файла;

Корневой каталог содержит набор 32-битных записей информации о каждом файле, содержащих следующую информацию:

· 8 байт – имя файла;

· 3 байта – расширение файла;

· 1 байт – атрибут файла:

· 1 байт – зарезервирован;

· 1 байт – время создания (миллисекунды) (число от 0 до 199);

· 2 байта – время создания (с точностью до 2с):

· 2 байта – дата создания:

· 2 байта – дата последнего доступа;

· 2 байта – старшие 2 байта начального кластера;

· 2 байта – время последней модификации;

· 2 байта – дата последней модификации;

· 2 байта – младшие 2 байта начального кластера;

· 4 байта – размер файла (в байтах).

В случае работы с длинными именами файлов (включая русские имена) кодировка имени файла производится в системе кодировки UTF-16. При этого для кодирования каждого символа отводится 2 байта. При этом имя файла записывается в виде следующей структуры:

· 1 байт последовательности;

· 10 байт содержат младшие 5 символов имени файла;

· 1 байт атрибут;

· 1 байт резервный;

· 1 байт – контрольная сумма имени DOS;

· 12 байт содержат младшие 3 символа имени файла;

· 2 байта – номер первого кластера;

· остальные символы длинного имени.

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





Дата добавления: 2016-11-02; просмотров: 386 | Нарушение авторских прав


Рекомендуемый контект:


Похожая информация:

  1. B) Выпишите подчеркнутые глаголы, распределив их по соответствующим группам
  2. I возрастная группа - до 10 лет включительно
  3. II. Практическая работа в группах
  4. III. Сообщение темы урока. – Сегодня на уроке мы узнаем, что называют «выражением»
  5. III. Третья группа профессиональных вредностей возникает вследствие несоблюдения общесанитарных условий в местах работы
  6. IV группа — заболевания, обусловленные пищевой непереносимостью
  7. IV. Особенности отражения операций по доведению бюджетных данных при осуществлении кассового обслуживания исполнения бюджетов субъектов Российской Федерации и местных бюджетов
  8. IV. Стратегия обучения Группа из 3 человек, 1 час
  9. V. СТУПЕНЬ (возрастная группа от 16 до 17 лет)
  10. XI. Требования к группам кратковременного пребывания, семейным дошкольным группам и иным подобным им видам дошкольных организаций независимо от организационно-правовых форм и
  11. А-т перестрах-очных операций


Поиск на сайте:


© 2015-2019 lektsii.org - Контакты - Последнее добавление

Ген: 0.005 с.