Что такое двоичный файл
Что такое двоичный файл
a ). файл, в котором используется двоичный поиск,
б).файл, в котором данные представлены в двоичной системе счисления»
Модель двоичного файла
Такая модель файла полностью совпадает с системой представлений, принятой в Си для работы с памятью на низком (физическом уровне).
· физическая память имеет байтную структуру – единицей адресации является байт;
· любая переменная занимает фиксированное количество байтов, определяемое ее типом. Операция sizeof возвращает эту размерность ;
int fread (void *buf, int size, int nrec, FILE *fd);
int fwrite (void *buf, int size, int nrec, FILE *fd);
Чтобы воспользоваться этими функциями, необходимо обеспечить преобразования переменных к «массиву байтов», используя указатели для задания адресов и операцию sizeof для вычисления размерности:
// Прочитать целую переменную и следующий за ней
// динамический массив из n переменных типа double
int n ; // в целой переменной – размерность массива
double *pd = new double[n];
Произвольный доступ базируется на понятии адреса в двоичном файле. Поскольку на физическом уровне двоичный файл представляется как «неограниченно растущий» массив байтов, то под адресом понимается порядковый номер байта, начиная с 0.
Замечание: текущая позиция в файле является адресом размещения переменной в нем, но получить этот адрес можно перед, и не после ее чтения оттуда.
#define SEEK_SET 0 // Относительно начала файла
#define SEEK_CUR 1 // Относительно текущей позиции,
fseek(fl,0L,SEEK_END); // Установить позицию на конец файла
fsize = ftell(fd); // Прочитать значение текущей позиции
fseek(fd,i,SEEK_CUR); // 100+sizeof(long)=104, позиционирование 104+46=150
Замечание: введя понятие произвольного доступа по адресу в файле, мы не ответили на главные вопросы: а откуда взять эти адреса и как размещаются данные в файле (распределяется память). Эти вопросы – к технологии программирования.
И, наконец, то, с чего следовало бы начать. При открытии или создании нового файла необходимо указать режим работы с файлом как с двоичным. Среди множества режимов можно выделить два: создание нового файла для записи всех данных, либо начальной структуры данных и открытие существующего файла с уже имеющейся структурой данных для чтения, записи и добавления. Последний режим наиболее точно соответствует модели двоичного файла как неограниченно расширяемого прямо адресуемого массива байтов.
// Открыть существующий как двоичный для чтения и записи
// Создать новый как двоичный для записи и чтения
Дамп двоичного файла
При отладке программ, работающих с двоичными файлами, иногда сложно установить, какой фрагмент – запись или чтение – содержит ошибку. Аналогично, при чтении уже известного формата необходимо проверять, насколько правильно читаются данные. Здесь не обойтись без навыков чтения дампа – двоичного содержимого файла. Для этого нам придется вспомнить основы представления базовых типов данных в памяти (см. 1.3). Естественно, что все данные и адреса присутствуют в шестнадцатеричной системе счисления.
// Формирование ДАМПА для чтения файла
fwrite(&p,sizeof(long),1,fd); // Занять место под указатель
fwrite(A,sizeof(short),k,fd); // Записать массив коротких целых (2B)
p=ftell(fd); // Получить значение указателя
fwrite(B,sizeof(int),m,fd); // Записать массив целых
fseek(fd,0,SEEK_SET); // К началу файла
fwrite(&p,sizeof(long),1,fd); // Обновить указатель на второй массив
рис. 94-1. Дамп двоичного файла
Чтобы теперь «увидеть» в дампе то, что мы записали, нужно учесть следующее:
· дамп выводится побайтно, один байт представлен двумя шестнадцатеричными цифрами;
· в каждой строке дампа – 16 байтов. Слева находится адрес строки (естественно, шестнадцатеричный). На рисунке для удобства обозначена младшая цифра адреса каждого байта;
· все данные пишутся «младшими байтами вперед». Т.е. для получения значения машинного слова байты надо переписать в обратном порядке;
· для данных другого типа необходим перевод в десятичную систему счисления, а также учет их размерности в соответствии с их типом.
Управление данными в двоичном файле
Работа с двоичным файлом порождает много вопросов общего порядка. Ответить на них можно, исходя из аналогии между двоичным файлом и внутренней (физической) памятью программы. Это касается, прежде всего, распределения памяти в файле и представления в нем различных структур данных.
// Добавить в файл вещественную переменную
Последовательность операций записи в файл создает в нем необходимую структуру данных. Иногда эти операции записи являются фиктивными с целью «занять место» под переменные с еще не определенными значениями.
· свободные участки объединяются в отдельную структуру данных, например, список, и повторно используются. Недостатком является сложность поддержания в файле дополнительной структуры данных;
// Обновить счетчик в двоичном файле
fseek(fd,pos,SEEK_SET); // Читать счетчик
a++; // Увеличить в памяти
· структуры данных в памяти и в файле принципиально различаются. Например, дерево (данные в вершинах и связи) можно сохранить в последовательном потоке (файле) в виде рекурсивного саморазворачивающегося формата (см. 8.2). В этом случае используется полная загрузка/сохранение структуры данных в виде единой операции;
· в памяти могут создаваться образы наиболее важных (часто используемых, управляющих) элементов структуры данных из двоичного файла. Например, при наличии в файле массива указателей на строки в памяти создается «образ» заголовка файла и массива указателей, а сами строки читаются «по необходимости». Такой способ создания и загрузки частичного образа структуры данных предполагает сеансовый режим работы с файлом: частичный образ создается в памяти при открытии файла. Здесь также возникает проблема соответствия образа оригиналу и обновления последнего;
Запись переменной длины – размерность единицы хранения может меняться от записи к записи. Записями файла могут быть переменные различных типов, либо динамические массивы, либо любые другие структуры данных переменной размерности. Типичной записью переменной длины является строка.
Способы организации данных в файлах
Предлагаемая классификация базируется на различии способов доступа к данным. Фактически вопрос сводится к способу получения их адреса. Их известно несколько:
· данные извлекаются из последовательного файла в заданном формате, поэтому их адресация не требуется. Последовательные файлы могут содержать записи как фиксированной, так и переменной длины, в т.ч. строки текста, а также любые данные в последовательном саморазворачивающемся формате;
· адрес вычисляется, исходя из количества и размерности переменных. Сюда относятся массивы и более сложные табличные структуры данных, размерности которых хранятся в них самих (параметризация).
Позиционирование в текстовом файле
Текстовые файлы являются по своей природе файлами последовательного доступа. Единственным исключением из этого правила является позиционирование (возврат) к уже прочитанному фрагменту текста при помощи функции fseek. Но для этого необходимо при первоначальном последовательном просмотре файла определить текущую позицию этого фрагмента в файле функций ftell, вызвав ее перед функцией чтения. Проиллюстрирует этот принцип рядом примеров.
Наличие вложенных фрагментов определяет рекурсивный характер программы. Каждый фрагмент должен обрабатываться отдельным вызовом рекурсивной функции. Для устранения проблем, связанных с хранением повторяющегося фрагмента произвольной длины, предлагается запомнить начальную позицию фрагмента в файле и перечитывать его при циклическом выводе. Начальной точкой рекурсии удобнее всего считать обнаружение открывающейся скобки в текущем потоке (то есть при вызове она считается уже прочитанной).
long pp ; // Текущая позиция фрагмента повторения
char c ; int n =0; // Количество повторов
pp = ftell ( fd ); // Запомнить текущую позицию
else // рекурсивный вызов после ‘(‘
putchar ( c ); // Перечитать фрагмент до ‘)’
//—— Вывод текста с заданной страницы
int i,n,NP; // Количество страниц в файле
long *POS; // Массив адресов начала страниц в файле
if ((fd=fopen(name,»r»))==NULL) return;
fseek(fd,0,SEEK_SET); // Вернуться в начало файла
POS=new long[NP]; // Динамический массив «закладок»
for (n=0; n // Просмотр страниц файла
POS[n]=ftell(fd); // Запомнить начало страницы
for (i=0; i // Чтение строк страницы
printf(«page number(0..%d):»,NP-1); scanf(«%d»,&n);
fseek(fd,POS[n],SEEK_SET); // Позиционироваться на страницу
for (i=0; i // Повторное чтение страницы
if (fgets(str,80,fd)==NULL) break;
При помощи позиционирования в тексте можно ввести любые системы его интерпретации, в том числе аналогичные механизмам, используемым в языках программирования. Такие средства непосредственной интерпретации текста называют также движками. Например, для моделирования вызова функции непосредственно над текстом программы необходимо:
· создать в программе стек, содержащий «точки возврата», которые также являются адресами в тексте;
Как видите, получается полная аналогия механизма вызова функции в компьютерной архитектуре с учетом того, что текстовый файл является аналогом адресного пространства (сегмента кода) программы.
Насколько же можно продвинуться в прямом доступе в текстовом файле? В принципе, никто не мешает нам записывать (обновлять) фрагменты текста, но при условии, что их размер будет точно совпадать с имеющимся. Следующий пример показывает, как извлечь из текстового файла числовое значение 6-разрядного счетчика и, увеличив, аккуратно «вписать» обратно.
//—— «Микрохирургическое» исправление счетчика
FILE *fd; char cc, name[30]=»94-03.txt»;
if ((fd=fopen(name,»r+w»))==NULL) return;
POS=ftell(fd); // Запомнить адрес символа
if ((cc=getc(fd))==EOF) break;
if (cc>=’0′ && cc // Прочитана цифра
fseek(fd,POS,SEEK_SET); // Вернуться на 1 символ
cnt++; // Увеличить счетчик
fseek(fd,POS,SEEK_SET); // Вернуться на начало счетчика
Лабораторный практикум
Указанные варианты заданий реализовать с использованием позиционирования указателя в текстовом файле и массива указателей, без загрузки самого текстового файла в память.
1. Сортировка строк файла по длине и по алфавиту и вывод результата в отдельный файл.
2. Программа-интерпретатор текста. Текстовый файл разбит на именованные модули. Каждый модуль может иметь вызовы других текстовых модулей. Требуется вывести текст модуля main с включением текстов других модулей в порядке вызова:
Произвольные строки модуля текста ааа
Произвольные строки текста
#aaa // Вызов модуля текста с именем aaa
Произвольные строки текста
Основной текст с вызовами других модулей
5. Программа просмотра блочной структуры Си-программы с командами вывода текущего блока, входа в n-ый по счету вложенный блок и выхода в блок верхнего уровня.
6. Программа построчного сравнения двух файлов с выводом групп строк, вставленных или удаленных из второго файла относительно первого.
8. Программа просмотра текстового файла по абзацам. Абзацем считается любая последовательность строк, ограниченная пустой строкой. Программа выводит на экран любой абзац по номеру.
10. Программа составляет словарь идентификаторов и служебных слов Си-программы путем запоминания каждого идентификатора и указателя на строку, в которой он встречается. Кроме того, программа позволяет просматривать текст в обоих направлениях построчно и при выборе текущей строки ищет первый идентификатор и позиционируется к строке, где он встречается в первый раз.
11. Программа составляет «оглавление» текстового файла путем поиска и запоминания позиций строк вида «5.7.6 Позиционирование в текстовом файле». Затем программа составляет меню, с помощью которого позиционируется в начало соответствующих разделов и пунктов с прокруткой текста в обоих направлениях.
12. Программа составляет словарь функций Си-программы. Затем программа составляет меню, с помощью которого позиционируется в начало соответствующих функций. (Функцию достаточно идентифицировать по фрагменту вида «идентификатор(. » вне фигурных скобок).
15. Программа сортировки файла по длине предложений и вывода результата в отдельный файл. При выводе каждое предложение следует переформатировать так, чтобы оно начиналось с отдельной строки и располагалось в строках размером не более 60 символов.
Двоичный файл
Двоичный (бинарный) файл — в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary ) цифр.
В узком смысле слова двоичные файлы противопоставляются текстовым файлам. При этом с точки зрения технической реализации на уровне аппаратуры, текстовые файлы являются частным случаем двоичных файлов, и, таким образом, в широком значении слова под определение «двоичный файл» подходит любой файл.
Часто двоичными файлами называют исполняемые файлы и сжатые данные, однако некорректно так ограничивать это понятие.
Содержание
Визуализация
Для наглядного представления двоичного файла он разбивается на куски равного размера, представляемые в виде чисел, записываемых, обычно, в шестнадцатеричной системе, иногда в восьмеричной, двоичной или десятичной. Означенный размер куска может быть равен одному октету, а также двум или четырём (в случае разбиения на куски по несколько октетов применяется порядок байтов, принятый на используемой платформе). Зависимость диапазона представляемых чисел от размера куска показана в таблице:
октетов | кол-во бит | шестнадцатеричное | восьмеричное | десятичное беззнаковое | десятичное знаковое |
---|---|---|---|---|---|
1 | 8 | 00 … FF | 000 … 377 | 0 … 255 | -128 … 127 |
2 | 16 | 0000 … FFFF | 000000 … 177777 | 0 … 65535 | -32768 … 32767 |
4 | 32 | 00000000 … FFFFFFFF | 00000000000 … 37777777777 | 0 … 4294967295 | -2147483648 … 2147483647 |
Нередко, помимо числовых значений байт, выводятся так же символы кодовой страницы, например ASCII. Нижеследующий пример показывает т. н. классический дамп (пооктетное шестнадцатеричное представление по 16 октетов в строке, с печатными ASCII-символами справа) начала PNG-файла логотипа Википедии:
Инструменты
Для визуализации
Для редактирования
Литература
Это заготовка статьи о компьютерах. Вы можете помочь проекту, исправив и дополнив её. Это примечание по возможности следует заменить более точным. |
Полезное
Смотреть что такое «Двоичный файл» в других словарях:
Файл (компьютер) — Файл (англ. file папка, скоросшиватель) концепция в вычислительной технике: сущность, позволяющая получить доступ к какому либо ресурсу вычислительной системы и обладающая рядом признаков: фиксированное имя (последовательность символов, число или … Википедия
Файл — У этого термина существуют и другие значения, см. Файл (значения). Файл (англ. file) блок информации на внешнем запоминающем устройстве компьютера, имеющий определённое логическое представление (начиная от простой последовательности… … Википедия
Бинарный файл — Двоичный (бинарный) файл в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary) цифр. В узком смысле слова двоичные файлы противопоставляются текстовым файлам.… … Википедия
Компьютерный файл — Файл (англ. file папка, скоросшиватель) концепция в вычислительной технике: сущность, позволяющая получить доступ к какому либо ресурсу вычислительной системы и обладающая рядом признаков: фиксированное имя (последовательность символов, число или … Википедия
Файлы — Файл (англ. file папка, скоросшиватель) концепция в вычислительной технике: сущность, позволяющая получить доступ к какому либо ресурсу вычислительной системы и обладающая рядом признаков: фиксированное имя (последовательность символов, число или … Википедия
Бинарник — Двоичный (бинарный) файл в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary) цифр. В узком смысле слова двоичные файлы противопоставляются текстовым файлам.… … Википедия
Бинарный формат — Двоичный (бинарный) файл в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary) цифр. В узком смысле слова двоичные файлы противопоставляются текстовым файлам.… … Википедия
Двоичные файлы — Двоичный (бинарный) файл в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary) цифр. В узком смысле слова двоичные файлы противопоставляются текстовым файлам.… … Википедия
Файловый ввод/вывод в языке Си — Язык программирования Си поддерживает множество функций стандартных библиотек для файлового ввода и вывода. Эти функции составляют основу заголовочного файла стандартной библиотеки языка Си Википедия
GNU Debugger — GDB Тип … Википедия
Что такое двоичный файл
лБЛ ЙЪЧЕУФОП, ЙОЖПТНБГЙС, ПВТБВБФЩЧБЕНБС ЛПНРШАФЕТПН, ИТБОЙФУС Ч ЖБКМБИ. уФТХЛФХТЩ ЖБКМПЧ ДМС ИТБОЕОЙС ФПК ЙМЙ ЙОПК ЙОЖПТНБГЙЙ НПЗХФ ВЩФШ ПЮЕОШ ТБЪМЙЮОЩ. лБЛ РТБЧЙМП, ТБЪТБВПФЮЙЛ УБН УПЮЙОСЕФ ОЕПВИПДЙНХА УФТХЛФХТХ ЖБКМБ, ОБРТЙНЕТ, doc. фБЛЦЕ УХЭЕУФЧХАФ УФБОДБТФЩ, ПРЙУЩЧБАЭЙЕ, ЛБЛЙН ПВТБЪПН ЙОЖПТНБГЙС ДПМЦОБ ИТБОЙФУС Ч ЖБКМЕ: jpeg, html Й Ф.Д. оЕ УНПФТС ОБ ВПМШЫПЕ ТБЪОППВТБЪЙЕ ЖПТНБФПЧ, ЙИ НПЦОП ТБЪДЕМЙФШ ОБ ДЧБ ЛМБУУБ: ДЧПЙЮОЩЕ (ЙМЙ ВЙОБТОЩЕ) Й ФЕЛУФПЧЩЕ.
ч ФЕЛУФПЧЩИ ЖБКМБИ ЙОЖПТБГЙС ИТБОЙФУС Ч ЧЙДЕ ФЕЛУФБ, ЛПФПТЩК ДПЧПМШОП МЕЗЛП РТПЮЕУФШ ЮЕМПЧЕЛХ. лБЛ РТБЧЙМП, РПУМЕ ЮФЕОЙС ФБЛПЗП ЖБКМБ РТПЗТБННБ, РТЕПВТБЪХЕФ РТПЮЙФБООЩЕ ДБООЩЕ Ч ЛБЛХА-ОЙВХДШ ДЧПЙЮОХА ЖПТНХ ДМС ВПМЕЕ ХДПВОПК ПВТБВПФЛЙ. дЧПЙЮОЩЕ ЖБКМЩ УПДЕТЦБФ ЙОЖПТНБГЙА ОЕРПУТЕДУФЧЕООП Ч ФПН ЧЙДЕ, Ч ЛПФПТПН ПОБ ПВТБВБФЩЧБЕФУС ЧП ЧТЕНС ТБВПФЩ РТПЗТБННЩ (ЧПЪНПЦОП, У ОЕВПМШЫЙНЙ ЙЪНЕОЕОЙСНЙ ЙМЙ ДПРПМОЕОЙСНЙ). рТЙ РПРЩФЛЕ РТПУНПФТБ ФБЛЙЕ ЖБКМЩ ЧЩЗМСДСФ ЛБЛ БВТБЛБДБВТБ.
пВЩЮОП ФЕЛУФПЧЩЕ ЖБКМЩ РТЙНЕОСАФУС ДМС ИТБОЕОЙС ФЕЛУФПЧПК ЙОЖПТНБГЙЙ (УФТБООП, ОЕ РТБЧДБ МЙ): txt, html, ini. пДОБЛП НПЦОП РТЙЧЕУФЙ Ч ЛБЮЕУФЧЕ РТЙНЕТБ ЖПТНБФ xpm, ЛПФПТЩК, СЧМССУШ ФЕЛУФПЧЩН, УПДЕТЦЙФ ЙЪПВТБЦЕОЙЕ. ьФПФ ЖБКМ РТЕДУФБЧМСЕФ УПВПК ПРЙУБОЙЕ НБУУЙЧБ ОБ СЪЩЛЕ C, ЛБЦДЩК ЬМЕНЕОФ ЛПФПТПЗП УПДЕТЦЙФ ГЧЕФ УППФЧЕФУФЧХАЭЕК ФПЮЛЙ. рПЬФПНХ ФБЛПК ЖБКМ НПЦОП ЧЛМАЮЙФШ Ч РТПЗТБННХ ОБ C/C++ У РПНПЭША ДЙТЕЛФЙЧЩ include.
дЧПЙЮОЩЕ ЖБКМЩ РТЙНЕОСАФУС ДМС ИТБОЕОЙС ОЕФЕЛУФПЧПК ЙОЖПТНБГЙЙ (ФПЦЕ ХДЙЧЙФЕМШОПЕ УПЧРБДЕОЙЕ): ЙЪПВТБЦЕОЙК (bmp, jpg), ЙУРПМОСЕНЩИ ЖБКМПЧ (elf, exe) Й ДТ. оП НПЦОП РТЙЧЕУФЙ Ч ЛБЮЕУФЧЕ РТЙНЕТБ ЖПТНБФ doc, ЛПФПТЩК ЙУРПМШЪХЕФУС ДМС ИТБОЕОЙС ФЕЛУФПЧПК ЙОЖПТНБГЙЙ.
ч ЬФПК УФБФШЕ ВХДХФ ТБУУНПФТЕОЩ ДПУФПЙОУФЧБ Й ОЕДПУФБФЛЙ ФЕЛУФПЧЩИ Й ДЧПЙЮОЩИ ЖБКМПЧ. оБДЕАУШ, ПОБ ВХДЕФ РПМЕЪОБ ЮЙФБФЕМА, Ф.Л. ЧЩВПТ ЖПТНБФБ ЖБКМПЧ ФБЛЦЕ ЧБЦЕО ЛБЛ Й ЧЩВПТ УФТХЛФХТ ДБООЩИ ДМС ПВТБВПФЛЙ ЙОЖПТНБГЙЙ.
дЧПЙЮОЩЕ ЖБКМЩ
лБЛ ПФНЕЮБМПУШ ТБОЕЕ, ДЧПЙЮОЩЕ ЖБКМЩ ИТБОСФ ЙОЖПТНБГЙА РПЮФЙ Ч ФПН ЧЙДЕ, Ч ЛПФПТПН ПОБ РТЕДУФБЧМСЕФУС Ч РБНСФЙ ЛПНРШАФЕТБ ЧП ЧТЕНС ТБВПФЩ РТПЗТБННЩ. рПЬФПНХ РТЙ ЮФЕОЙЙ ФБЛПЗП ЖБКМБ РТБЛФЙЮЕУЛЙ ОЕ ЧЩРПМОСЕФУС ОЙЛБЛЙИ РТЕПВТБЪПЧБОЙК, ЮФП ХУЛПТСЕФ УПВУФЧЕООП РТПГЕУУ ЮФЕОЙС. дБ Й УБНБ ЖХОЛГЙС ЮФЕОЙС НПЦЕФ ВЩФШ ДПЧПМШОП РТПУФПК.
оП ВЙОБТОЩЕ ЖПТНБФЩ ЙНЕАФ ЕЭЕ ПДОП ПЮЕОШ ЧБЦОПЕ РТЕЙНХЭЕУФЧП, ПДОБЛП ОЕ ФЕИОПМПЗЙЮЕУЛПЕ, Б НБТЛЕФЙОЗПЧПЕ. рТЕЙНХЭЕУФЧП УПУФПЙФ Ч ФПН, ЮФП ЕУМЙ ЖПТНБФ ЖБКМБ ОЕ ПРЙУБО, ФП РПОСФШ ЕЗП УБНПУФПСФЕМШОП ДПЧПМШОП ФТХДОП. ьФП РТЕЙНХЭЕУФЧП НПЦОП ЙУРПМШЪПЧБФШ Ч ЧПКОЕ ЪБ ТЩОПЛ. рТЕДРПМПЦЙН, ЮФП ЛБЛБС-ФП ЖЙТНБ (ДМС ПРТЕДЕМЕООПУФЙ ОБЪПЧЕН ЕЕ M) ЧЩРХУЛБЕФ РТПЗТБННХ (W), ЙУРПМШЪХАЭХА ДЧПЙЮОЩК ЖПТНБФ ЖБКМПЧ (d), УРЕГЙЖЙЛБГЙЙ ЛПФПТПЗП ОЕ РХВМЙЛХАФУС. еУМЙ ЬФБ ЖЙТНБ УНПЦЕФ ЪБОСФ МЙДЙТХАЭЕЕ ЙМЙ НПОПРПМШОПЕ РПМПЦЕОЙЕ ОБ ТЩОЛЕ, ФП ЛПОЛХТЕОФБН ВХДЕФ ДПЧПМШОП ФСЦЕМП ЕЕ РПФЕУОЙФШ. еУМЙ ЛБЛБС-ФП ДТХЗБС ЖЙТНБ (S) ЙМЙ ПТЗБОЙЪБГЙС (O) РПРЩФБЕФУС ЧЩКФЙ ОБ ТЩОПЛ У РТПЗТБННПК (OO) БОБМПЗЙЮОПЗП ОБЪОБЮЕОЙС, ФП ДМС РПМШЪПЧБФЕМЕК ВХДХ ОЕ ФБЛ ЧБЦОЩ РТЕЙНХЭЕУФЧБ OO РЕТЕД W, ЛБЛ ХНЕОЙЕ OO ПВТБВБФЩЧБФШ ЖБКМЩ ЖПТНБФБ d. ф.Е. ЙУРПМШЪПЧБОЙЕ ЪБЛТЩФПЗП ДЧПЙЮОПЗП ЖПТНБФБ РПЪЧПМСЕФ ОБН ВПМЕЕ ХЧЕТЕООП ЛПОФТПМЙТПЧБФШ УЙФХБГЙА ОБ ТЩОЛЕ, Ф.Л. ЛПОЛХТЕОФЩ ДПМЦОЩ ВХДХФ ТБЪЗБДБФШ ОБЫ ИЙФТЩК ЖПТНБФ. б ОБ ОЙИ НПЦОП ВХДЕФ ЕЭЕ Й Ч УХД РПДБФШ :). рТБЧДБ РПМШЪПЧБФЕМЙ ОБЫЕК РТПЗТБННЩ ДПМЦОЩ ВХДХФ НЙТЙФШУС У ЕЕ ЗМАЛБНЙ, ЙУРТБЧМСФШ ЛПФПТЩЕ УНПЦЕН ФПМШЛП НЩ. оП НЩ ЧЕДШ ДЕОШЗЙ ЪБТБВБФЩЧБЕН, Б ОЕ ЪБОЙНБЕНУС ВМБЗПФЧПТЙФЕМШОПУФША 🙂
еЭЕ ПДОБ РТПВМЕНБ УЧСЪБОБ У ФБЛ ОБЪЩЧБЕНЩН ЧЩТБЧОЙЧБОЙЕН. дЕМП Ч ФПН, ЮФП ОБ ОЕЛПФПТЩИ РМБФЖПТНБИ ДБООЩЕ ДПМЦОЩ ТБУРПМБЗБФШУС РП ПРТЕДЕМЕООЩН БДТЕУБН (ОБРТЙНЕТ, РП ЮЕФОЩН) ЙМЙ ТЕЛПНЕОДХЕФУС ЙИ ТБУРПМБЗБФШ РП ПРТЕДЕМЕООЩН БДТЕУБН ДМС ВПМЕЕ ВЩУФТПК ПВТБВПФЛЙ. лПНРЙМСФПТЩ НПЗХФ БЧФПНБФЙЮЕУЛЙ ЧЩРПМОСФШ ЧЩТБЧОЙЧБОЙЕ. рПЬФПНХ, ЕУМЙ чЩ ЪБРЙУЩЧБЕФЕ Ч ЖБКМ ДЧПЙЮОЩК ПВТБЪ ЪБРЙУЙ, ЙНЕАЭЕК ТБЪНЕТ 3 ВБКФБ, ЛПНРЙМСФПТ ЧРТБЧЕ ЪБРЙУБФШ Ч ЖБКМ 4 ВБКФБ. еУФЕУФЧЕООП, ЮФП ДМС РТБЧЙМШОПК ПВТБВПФЛЙ РТПЗТБННБ- ЮЙФБФЕМШ ДПМЦОБ ЙУРПМШЪПЧБФШ ФПФ ЦЕ ФЙР ЧЩТБЧОЙЧБОЙС, ЮФП Й РТПЗТБННБ-РЙУБФЕМШ.
фБЛЦЕ Л ОЕДПУФБФЛБН ВЙОБТОЩИ УМЕДХЕФ ПФОЕУФЙ ЙИ ОЕЗЙВЛПУФШ. рПТСДПЛ УМЕДПЧБОЙС ВМПЛПЧ ЙОЖПТНБГЙЙ Ч ФБЛЙИ ЖБКМБИ ЦЕУФЛП ЪБДБО, РПЬФПНХ РТЙ ЙЪНЕОЕОЙЙ ЖПТНБФБ, РПМШЪПЧБФЕМЙ ЧЩОХЦДЕОЩ РПЛХРБФШ (ФПЮОЕЕ РТЙПВТЕФБФШ 🙂 ОПЧХА ЧЕТУЙА РТПЗТБННЩ. у ДТХЗПК УФПТПОЩ, НПЦОП РЕТЙПДЙЮЕУЛЙ НЕОСФШ ЖПТНБФЩ ЖБКМПЧ, ЮФПВЩ РПМШЪПЧБФЕМЙ ЙНЕМЙ РПЧПД ТБУЛПЫЕМЙФШУС.
фЕЛУФПЧЩЕ ЖБКМЩ
фЕЛУФ СЧМСЕФУС ХОЙЧЕТУБМШОЩН УТЕДУФЧПН РТЕДУФБЧМЕОЙС ЙОЖПТНБГЙЙ. ч УЧСЪЙ У ФЕН, ЮФП УЕКЮБУ ОБ ЧУЕИ РМБФЖПТНБИ ВБКФЩ ЙНЕАФ ТБЪНЕТ 8 ВЙФ Й УХЭЕУФЧХЕФ УФБОДБТФ ЛПДЙТПЧБОЙС УЙНЧПМПЧ (ИПФС ДМС ТХУУЛЙИ Й ХЛТБЙОУЛЙИ УЙНПМПЧ ФБЛЙИ УФБОДБТФПЧ ДБЦЕ ЫФХЛ 8 :), ФЕЛУФПЧЩК ЖПТНБФ СЧМСЕФУС РЕТЕОПУЙНЩН. ф.Е. ФЕЛУФ ОБВТБООЩК ОБ ПДОПК РМБФЖПТНЕ, РТБЛФЙЮЕУЛЙ ВЕЪ ФТХДБ РТПЮЙФБЕФУС ОБ ДТХЗПК. фПЮОЕЕ ЬФП УРТБЧЕДМЙЧП ДМС МБФЙОУЛЙИ ФЕЛУФПЧ. дМС ФЕЛУФПЧ ОБ ДТХЗЙИ СЪЩЛБИ НПЗХФ ЧПЪОЙЛОХФШ РТПВМЕНЩ ЙЪ-ЪБ ОБМЙЮЙС ОЕУЛПМШЛЙИ УФБОДБТФПЧ ЛПДЙТПЧБОЙС (ЛПДЙТПЧПЛ). пДОБЛП ДПЧПМШОП РТПУФП УПЪДБФШ РТПЗТБННХ, РЕТЕЧПДСЭХА ФЕЛУФ ЙЪ ПДОПК ЛПДЙТПЧЛЙ Ч ДТХЗХА.
йНЕООП ЙЪ-ЪБ ЬФЙИ РТЕЙНХЭЕУФЧ ЧУЕ УФБОДБТФЩ ЙМЙ РТПФПЛПМЩ РЕТЕДБЮЙ ЙОЖПТНБГЙЙ Ч Internet (http, smtp, pop Й Ф.Д.) СЧМСАФУС ФЕЛУФПЧЩНЙ.
йУРПМШЪХС ФЕЛУФПЧЩК ЖПТНБФ, ДПЧПМШОП МЕЗЛП УПЪДБФШ ЖБКМ, УФТХЛФХТБ ЛПФПТПЗП ОЕ ВХДЕФ ЪБЧЙУЕФШ ПФ РПТСДЛБ ТБУРПМПЦЕОЙС ВМПЛПЧ ЙОЖПТНБГЙЙ. иПФС ОЙЛФП ОЕ НЕЫБЕФ ЙУРПМШЪПЧБФШ Й ЦЕУФЛХА УФТХЛФХТХ.
еУМЙ ДМС ЛБЦДПЗП ЖПТНБФБ ДЧПЙЮОПЗП ЖБКМБ ОЕПВИПДЙНБ ПФДЕМШОБС РТПЗТБННБ, ЛПФПТБС Ч УПУФПСОЙЙ ЕЗП ПВТБВПФБФШ, ФП ДМС НБОЙРХМСГЙК У УПДЕТЦЙНЩН МАВЩИ ФЕЛУФПЧЩИ ЖБКМПЧ НПЦОП ЙУРПМШЪПЧБФШ ИПТПЫП ЙЪЧЕУФОЩЕ Й РТПЧЕТЕООЩЕ ЧТЕНЕОЕН (ЛБЛПЧ УМПЗ 🙂 ЙОУФТХНЕОФЩ: grep, sed, awk, ОЕ ЗПЧПТС П ФБЛЙИ НПОУФТБИ ЛБЛ Perl.
пДОЙН ЙЪ ОЕДПУФБФЛПЧ ФЕЛУФПЧЩИ ЖПТНБФПЧ СЧМСЕФУС НЕОШЫБС УЛПТПУФШ УЮЙФЩЧБОЙС Й РТЕПВТБЪПЧБОЙС ЧП ЧОХФТЕООЙК ЖПТНБФ РТПЗТБННЩ ФЕЛУФПЧЩИ ЖБКМПЧ. пДОБЛП, ЛБЛ РТБЧЙМП, ЮФЕОЙЕ ЖБКМПЧ ЧЩРПМОСЕФУС ОЕЮБУФП, ДБ Й УЛПТПУФШ УПЧТЕНЕООЩИ ЛПНРШАФЕТПЧ ДПУФБФПЮОБ. вПМЕЕ ЧБЦОЩН ОЕДПУФБФЛПН ЖПТНБФБ СЧМСЕФУС ЕЗП РТПЪТБЮОБС УФТХЛФХТБ. рПЬФПНХ ДТХЗПК РТПЗТБННЙУФ УНПЦЕФ ОБРЙУБФШ УЧПА РТПЗТБННХ ДМС ПВТБВПФЛЙ ФБЛЙИ ЖБКМПЧ. еУМЙ ЕЗП РТПЗТБННБ ВХДЕФ МХЮЫЕ ОБЫЕК, ФП ОЕВМБЗПДБТОЩЕ РПМШЪПЧБФЕМЙ ВХДХФ ЙУРПМШЪПЧБФШ ЙНЕООП ЕЕ, Б ОЕ ОБЫ РТПДХЛФ.
жБКМЩ ОБ ПУОПЧЕ XML ЙНЕАФ ФЕЦЕ РТЕЙНХЭЕУФЧБ, ЮФП Й ФЕЛУФПЧЩЕ ЖБКМЩ. рПНЙНП ЬФПЗП, УХЭЕУФЧХЕФ ОЕУЛПМШЛП ВЙВМЙПФЕЛ (ОБРТЙНЕТ, expat) ДМС ТБЪВПТБ (РБТУЙОЗБ) ФБЛЙИ ЖБКМПЧ. рПЬФПНХ ПФОПУЙФЕМШОП ОЕУМПЦОП ОБРЙУБФШ ЖХОЛГЙА, ЛПФПТБС ВХДЕФ УЮЙФЩЧБФШ ФБЛЙЕ ЖБКМЩ.
ъБЛМАЮЕОЙЕ
тЕЫЕОЙЕ П ФПН, ЛБЛПК ЖПТНБФ ЙУРПМШЪПЧБФШ: ФЕЛУФПЧЩК ЙМЙ ДЧПЙЮОЩК, УМЕДХЕФ РТЙОЙНБФШ ЙОДЙЧЙДХБМШОП ДМС ЛБЦДПЗП ПФДЕМШОПЗП УМХЮБС.
еУМЙ чЩ ТБЪТБВБФЩЧБЕФЕ РТПЗТБННОЩК РТПДХЛФ МЙЫШ ДМС ПДОПК РМБФЖПТНЩ, Б ФБЛЦЕ ВПМЕЕ УЙМШОП ЛПФТПМЙТПЧБФШ ТЩОПЛ Й ДЕТЦБФШ ТХЛХ ОБ РХМШУЕ (ЙМЙ ЗПТМЕ) РПМШЪПЧБФЕМС, ФП РПЦБМХК УФПЙФ ЙУРПМШЪПЧБФШ ДЧПЙЮОЩК ЖПТНБФ.