Что такое binary file это вирус
содержание
Состав
Бинарные файлы, как правило , думает как последовательность байт , что означает , что двоичные цифры ( биты ) сгруппированы в восьмерках. Бинарные файлы обычно содержат байты, которые предназначены быть истолковано как нечто иное , чем текстовые символы . Составитель компьютерных программ являются типичными примерами; Действительно, скомпилированные приложения иногда называют, в частности , программистами, так как двоичные файлы . Но бинарные файлы могут также означать , что они содержат изображения, звуки, сжатые версии других файлов и т.д., короче говоря, любой тип содержимого файла вообще.
Некоторые бинарные файлы содержат заголовки , блоки метаданных , используемых в компьютерной программе для интерпретации данных в файле. Заголовок часто содержит подпись или магическое число , которое может определить формат. Например, GIF - файл может содержать несколько изображений, а также заголовки используются для идентификации и описания каждого блока данных изображения. Ведущие байты заголовка будут содержать текст , как GIF87a или GIF89a , который может идентифицировать двоичный как GIF - файл. Если двоичный файл не содержит никаких заголовков, можно назвать плоский двоичный файл .
манипуляция
Для передачи двоичных файлов через определенные системы (например, адрес электронной почты ) , которые не позволяют все значения данных, они часто переводятся в простом текстовом представлении ( с использованием, например, Base64 ). Кодирование данных имеет тот недостаток , увеличивая размер файла во время передачи (например, с помощью Base64 увеличит размер файла примерно на 30%), а также требует перевода обратно в двоичный после получения. Увеличенный размер может быть противопоставлен сжатием связи более низкого уровня, так как полученные текстовые данные будут иметь примерно столько же меньше энтропии , как она увеличила размер, поэтому фактические данные , переданные в этом случае, вероятно , будут очень близки к размеру оригинала двоичные данные. См транспортного кодирования для более на эту тему.
Просмотр
Редактор шестнадцатеричного или зритель может быть использован для просмотра данных файла в виде последовательности шестнадцатеричного (или десятичного, двоичных или ASCII символа) значений для соответствующих байт двоичного файла.
интерпретация
Стандарты очень важны для бинарных файлов. Например, двоичный файл интерпретируется набор символов ASCII приведет отображается текст. Пользовательское приложение может интерпретировать файл по- разному: один байт может быть звук, или пиксель, или даже целое слово. Binary сам не имеет смысл, до то время , как исполняемый алгоритм не определяет , что должно быть сделано с каждым битом, байтом, словом или блоком. Таким образом, только исследуя бинарный и попытку сопоставить его с известными форматами может привести к ошибочному выводу относительно того , что он на самом деле представляет. Этот факт может быть использован в стеганографии , где алгоритм интерпретирует двоичный файл данных по- разному , чтобы показать скрытое содержание. Без алгоритма, то нельзя сказать , что скрытое содержание существует.
Двоичная совместимость
Два файла, которые являются двоичной совместимостью будет иметь ту же последовательность нулей и единиц в части данных файла. Заголовок файла, однако, может быть различным.
Этот термин используется чаще всего заявить , что файлы данных , полученных с помощью одного приложения точно так же , как файлы данных , полученных с помощью другого приложения. Например, некоторые программные компании выпускают приложения для Windows , и Macintosh , которые являются двоичной совместимостью, что означает , что файл , созданный в среде Windows , является взаимозаменяемым с файлом производится на Macintosh. Это позволяет избежать многих проблем преобразования , вызванные импорта и экспорта данных.
Одним из возможной проблемы бинарной совместимости между различными компьютерами является порядком байт компьютера. Некоторые компьютеры хранят байты в файле в другом порядке.
Иногда, при обнаружении в электронной почте, на диске ПК или в сети необычной области данных, возникает необходимость узнать, как открыть файл bin – особенно при его значительных размерах и отсутствии сопровождающей его дополнительной информации.
Если по документу с таким расширением просто дважды кликнуть левой кнопкой мыши, открытия не произойдёт. А на экране появится окно с просьбой выбрать для этого программу.
Рис.1. Требование системой выбора подходящей для открытия программы.
Содержание:
При этом в некоторых случаях система предлагает для работы с файлом .bin одно из имеющихся на компьютере подходящих приложений.
Однако если открыть с их помощью информацию не получилось, или список пуст, стоит попытаться найти нужную программу самостоятельно.
Перед этим стоит разобраться в необходимости расширения .bin, задачах таких файлов в системе и особенностях их открытия.
Что такое bin-файл?
Предполагается, что расширение *.bin обозначает бинарный файл. Он необходим для работы других программ и компонентов.
И, чаще всего, идёт в комплекте с исполняющими файлами – данными с расширением *.exe в Windows и динамическими библиотеками .dll для этой же ОС.
Для MacOS это могут быть ещё и данные типа *.app.
Внутри такого файла может содержаться:
Узнать, чем конкретно открывать данный тип файла .bin, можно по его типу.
Но, так как в большинстве случаев определение такой разновидности затруднительно, не исключено, что придётся воспользоваться несколькими способами открытия.
Варианты открытия
Открыть бинарные файлы можно с помощью различных приложений – причём даже тех, которые уже находятся на компьютере по умолчанию.
Например, программы Блокнот, способной просматривать информацию любого типа. Однако в данном случае её отображение будет неправильным и нечитаемым.
Так что, хотя пользоваться Блокнотом не запрещается, делать это совершенно бесполезно.
Рис.2. Отображение содержимого файла .bin, открытого в Блокноте.
Неправильно показывающееся содержимое файла в Блокноте наблюдается при его сравнительно небольшом размере – в пределах нескольких мегабайт.
Но, если информация занимает достаточно места (100, 200 или тысячи МБ), скорее всего она представляет собой образ диска.
И для того чтобы открыть такой файл, стоит воспользоваться соответствующими приложениями
Открытие образов
Открыть большие по размеру файлы с расширением bin можно попробовать с помощью утилит, работающих с образами:
Рис.3. Работа с бесплатной версией UltraISO.
Такие утилиты обычно бесплатные или условно-бесплатные, то есть имеют определённый период свободного использования.
При отсутствии таких программ на компьютере следует скачать одну из таких не требующих оплаты вариантов из сети и попробовать открыть файл bin.
При желании, можно попробовать переформатировать файл bin в более привычный для современных эмуляторов вид – с расширением ISO.
Для этого потребуется программа-конвертер – такая как MagicISO, способная изменить формат всего за несколько минут.
Более подробно об открытии файлов .ISO читайте в нашем материале
Полезная информация:
Для конвертации видео из одного формата в другой рекомендуем воспользоваться программой Format Factory. Она способна работать с аудио, картинками, документами и прочим.
Как открыть прошивку, драйвер или установщик ПО?
Небольшой по размеру файл bin может оказаться драйвером или прошивкой подключаемого устройства (например, Wi-Fi-роутера).
Определить, как использовать такую информацию, может помочь инструкция к программному обеспечению или устройству.
Скачать специализированное приложение, открывающее и даже изменяющее файлы, можно с официальных сайтов производителей, или воспользоваться для этого программами типа Pic Bin Editor.
Рис.4. Утилита Pic Bin Editor 2.0.
В тех случаях, когда информация с расширением *.bin представляет собой вспомогательный файл для установки какого-то приложения и находится с ним в одной папке, открывать её не надо.
Данные будут использованы автоматически в процессе загрузки программы или игры. И никаких полезных для пользователя сведений открытие файла не принесёт.
Открытие двоичного видеофайла
В ряде случаев обнаруженный на компьютере файл bin может оказаться двоичным видеофайлом Binary Video File – то есть копией DVD-диска или другого носителя, содержащего видеозаписи.
Он представляет собой одну из разновидностей образа, но идёт в комплекте к данным с расширением .cue и открывается уже не эмуляторами, а с помощью мультимедиа плееров:
Рис.5. Медиа плеер VLC.
Двоичные хранилища данных, не требующие открытия
Информация, представленная в двоичном виде, далеко не всегда требует открытия с помощью каких-либо приложений.
Нередко такие файлы, особенно при наличии у них небольшого размера (например, 5–10 кб), используются только конкретными программами и играми, в процессе установки или использования которых запуск файлов bin происходит автоматически.
Но, если по какой-то причине их содержимое следует посмотреть, выбирают приложения типа WinHex или Resource Hacker.
Рис.6. Приложение WinHex.
Работа со сжатыми файлами в системе MacOS
Кроме бинарных файлов в ОС Windows, можно встретить такое же расширение и в других операционных системах.
Например, на компьютерах под управлением MacOS. Здесь информация, скорее всего, окажется сжатым файлом Macbinary, содержащим поисковый заголовок, данные и ресурсы.
Информация такого типа часто передаётся по электронной почте или хранится в сети, и предназначена только для ПК марки Apple. В
прочем, возможность встретить файлы bin для MacOS в настоящее время невелика – из-за замены этого расширения более популярными вариантами.
Но при необходимости это сделать пользуются приложениями:
- The Unarchiver;
- ZipZag;
- Apple Disk Utility;
- QUALCOMM Eudora;
- StuffIt Deluxe.
Исполняемые файлы ОС Linux
Достаточно часто файл с расширением bin можно встретить в системах Unix – таких как Linux или Free BSD.
Обнаружив такие данные, их можно просмотреть с помощью командной строки, набрав в ней команду типа имя_файла.bin . Хотя в основном для открытия данных нет особых причин.
Файлы игровых консолей
Двоичный файл типа bin может оказаться частью дистрибутива игры для приставки из серии Nintendo DS или даже Sony PlayStation.
В этом случае он необходим для внесения изменений в игровые приложения и располагается в одной папке с основной частью программ.
В таком файле содержится информация для запуска информации с расширениями ePSXe или NDS, а его открытие обычным пользователем ни к чему не приведёт.
Другие варианты
Применяемые на сегодняшний день данные, хранящиеся в файлах bin, могут предназначаться для использования на таких устройствах:
- на смартфонах марки BlackBerry, где данные служат для управления обновлениями операционной системой;
- любых мобильных гаджетов с чипсетом MTK (значительная часть бюджетных китайских смартфонов с ОС Android);
- старых телефонах Nokia, где bin-файл может содержать мелодию рингтона;
- сканерах марки Epson, Acer и Agfa.
Узнать, что файл необходим для работы с соответствующим оборудованием обычно несложно, так как информация располагается в общих папках с предназначенным для этих устройств программным обеспечением.
Открыть их может понадобиться только разработчику, использующему для этой цели специализированные утилиты.
Пользователю ПК этого делать не следует – во-первых, никакой ценной информации он не получит, а, во-вторых, случайно изменённый файл может перестать работать.
Выводы
Обнаруженный файл образа с расширением bin можно открыть с помощью стандартных эмуляторов типа Alcohol или Daemon Tools и даже конвертировать его в более удобный формат.
Существуют и специальные программы, открывающие такую информацию.
Тогда как системные файлы того же типа чаще всего вообще не стоит открывать и, тем более, изменять, оставив эту возможность программистам и разработчикам программного обеспечения.
Большая часть моей жизни - процесс получения информации, в первую очередь, о современных технологиях. Технологии помогают мне работать, учиться, развлекаться и общаться. Самыми интересными и полезными сведениями я всегда готов поделиться с другими.Мой телеграмм: Yurii Kutsii
Вместе с HTML5 в веб-разработку приходят новые API, расширяющие UX, привнося новые мультимедийные возможности и возможности взаимодействия в реальном времени. Зачастую этот функционал завязан на использование бинарных форматов файлов вроде MP3-аудио, PNG-изображений
или MP4-видео. Использование бинарных файлов крайне важно в данном контексте, так как позволяет уменьшить требования к ширине канала, добиться необходимой производительности и вместе с этим оставаться совместимым с имеющимися технологиями. Еще недавно у веб-разработчиков не было прямого доступа к содержимому этих бинарных файлов или любых других бинарных форматов файлов.
В этой статье мы рассмотрим, как веб-разработчики могут снять этот барьер, используя
Typed Arrays API для JavaScript, и использование нового API в демонстрационном примере Binary File Inspector на IE Test Drive.
Типизированные массивы, доступные в IE10 Platform Preview 4, позволяют веб-приложениями работать с широким спектром бинарных файлов и напрямую работать с двоичным контентом поддерживаемых браузером файлов. Поддержка Typed Arrays была добавлена по всему IE10: в JavaScript, в XMLHttpRequest, в File API и в Stream API.
Binary File Inspector
Пример Binary File Inspector показывает некоторые из новых возможностей, работающих при сочетании этих функций. Вы можете посмотреть ID3-заголовки музыкальных файлов, понять, как выглядит сырые данные в видео-файлах, а также посмотреть файлы других форматов вроде PCX-изображений, которые могут поддерживаться
браузером с помощью JavaScript и Canvas.
Typed Arrays и ArrayBuffers
Типизированные массивы предоставляют возможность взгялнуть на сырое бинарное содержимое через то или иное типизированное представление. Например, если мы хотим смотреть на бинарный поток данных как байтовый массив, мы можем использовать Uint8Array (Uint8 описывает 8-битовое беззнаковое целое значение, обычно называемое байтом). Если мы хотим считывать сырые данные как массив чисел с плавающей точкой, мы можем использовать Float32Array (Float32 описывает 32-битное число с плавающей точкой в соответствии со стандартом IEE754). Поддерживаются следующие типы:
Тип массива | Размер элемента и описание |
Int8Array | 8-bit signed integer |
Uint8Array | 8-bit unsigned integer |
Int16Array | 16-bit signed integer |
Uint16Array | 16-bit unsigned integer |
Int32Array | 32-bit signed integer |
Uint32Array | 32-bit unsigned integer |
Float32Array | 32-bit IEEE754 floating point number |
Float64Array | 64-bit IEEE754 floating point number |
Каждый тип массива — это представление для ArrayBuffer. ArrayBuffer — это ссылка на поток бинарных данных, но он не представляет никакого прямого способа для взаимодействия с данными. Создание TypedArray-представления для ArrayBuffer предоставляет доступ к чтению и записи бинарного содержимого.
Пример ниже создает новый ArrayBuffer с нуля и интерпретирует его содержимое различными способами:
Таким образом, типизированные массивы могут быть использованы для таких задач как создание значений с плавающей точкой из их по-байтовых компонент построения структур данных, требующих специфичной компоновки данных, исходя из соображений эффективности и совместимости.
Typed Arrays для чтения бинарных файлов
Важный новый сценарий, ставший возможным благодаря типизированным массивам, это чтение и отображение содержимого бинарных файлов, неподдерживаемых напрямую браузером. Вместе с различными типизированными массивами, описанными выше, Typed Arrays также предоставляет специальный объект DataView, который можно использовать для чтения и записи содержимого ArrayBuffer в неструктурированном виде. Это хорошо подходит для чтения новых форматов файлов, которые обычно построены поверх смешанных типов данных.
Binary File Inspector использует DataView для чтения PCX-файлов и их рендеринга с использованием -элемента. Ниже приведена упрощенная версия того, что делается в демонстрационном примере для чтения заголовка файла, включая получения информации о ширине и высоте, DPI и глубине цвета (bits-per-pixel).
Код, аналогичный приведенному выше, может быть использован для добавления поддержки рендеринга в браузере широкого спектра новых типов файлов, включая собственные форматы изображений, дополнительные форматы видео-файлов и форматы данных, специфичных для той или иной области.
Получение двоичных данных через XHR и File API
Во многих случаях файлы могут выбираться пользователем, например, в виде приложения к письму в веб-клиенте для почты. File API предоставляет веб-разработчикам возможность чтения содержимого файлов, указанных через -элемент, при перетаскивании (drag and drop) или из другого источника (Blob, File). Для чтения содержимого файла в ArrayBuffer используется объект FileReader и, подобно XHR-объекту, он используется асинхронно, чтобы убедиться, что чтение с диска не блокирует пользовательский интерфейс.
Для наглядного представления двоичного файла он разбивается на куски равного размера, представляемые в виде чисел, записываемых, обычно, в шестнадцатеричной системе, иногда в восьмеричной, двоичной или десятичной. Означенный размер куска может быть равен одному октету, а также двум или четырём (в случае разбиения на куски по несколько октетов применяется порядок байтов, принятый на используемой платформе). Зависимость диапазона представляемых чисел от размера куска показана в таблице:
октетов | кол-во бит | шестнадцатеричное | восьмеричное | десятичное беззнаковое | десятичное знаковое |
---|---|---|---|---|---|
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 |
Инструменты
- debug (в Microsoft Windows, частично)
- hexdump (в GNU/Linux и т. п.)
Литература
Wikimedia Foundation . 2010 .
файл — сущ., м., употр. сравн. часто Морфология: (нет) чего? файла, нет? файлу, (вижу) что? файл, чем? файлом, о чём? о файле; мн. что? файлы, (нет) чего? файлов, чем? файлам, (вижу) что? файлы, чем? файлами, о чём? о файлах 1. Файлом называется массив… … Толковый словарь Дмитриева
Бинарный формат — Двоичный (бинарный) файл в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary) цифр. В узком смысле слова двоичные файлы противопоставляются текстовым файлам.… … Википедия
Двоичный файл — Двоичный (бинарный) файл в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary) цифр. В узком смысле слова двоичные файлы противопоставляются… … Википедия
конфигурационный файл — Бинарный или текстовый файл, содержащий информацию, которая определяет поведение приложения, компьютера или сетевого устройства. [http://www.lexikon.ru/dict/net/index.html] Тематики сети вычислительные EN configuration file … Справочник технического переводчика
.ipa — У этого термина существуют и другие значения, см. IPA (значения). .IPA формат архивных файлов приложений от Apple для iPhone, iPod Touch и iPad. Файлы с данным расширением хранятся в магазине App Store и загружаются с помощью iTunes для… … Википедия
Паскаль (язык программирования) — Эта статья или раздел нуждается в переработке. В Паскале нет модулей, ООП и прочих новомодных веяний. Описание расширений должно присутствовать только в статьях о соответ … Википедия
Паскаль (язык) — Pascal Семантика: процедурный Тип исполнения: компилятор Появился в: 1970 г. Автор(ы): Никлаус Вирт Паскаль (англ. Pascal) высокоуровневый язык программирования общего назначения. Один из наиболее известных языков программирования, широко… … Википедия
Gopher (сетевой протокол) — Gopher Название: Gopher Порт/ID: 70/TCP Спецификация: RFC 1436 Основные реализации (клиенты): Mozilla Firefox, Microsoft Windows: IE 5.x, IE 6 (ограничено MS) Gopher сетевой протокол распределённого поиска и передачи документов, бывший широко рас … Википедия
Список расширений имени файла/B — / * A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Примечание: Поскольку расширение имени файла может быть любым, представленный список не является полным … Википедия
Бинарные файлы
В файле содержатся числа. Сформировать из них матрицу, содержащую пять элементов в строке. Лишние.
Бинарные файлы
Здравствуйте, нужно чтобы отметки шли не по порядку, а по убыванию, что нужно изменить в последнем.
Бинарные файлы
Всё началось с необходимости наличия программы, в которую вводишь число и она говорит есть ли такое.
Бинарные файлы..
Доброго времени суток, господа! Возникла проблемка с открытием бинарного файла: char.
Решение
Ликбез по двоичным файлам:
Обычно различают текстовые и двоичные файлы. Текстовые файлы состоят из строк, которые завершаются символом конца строки. В программе на С++ этот символ обозначается как '\n'.
ПРИМЕЧАНИЕ
В системе Windows строки в текстовом файле завершаются комбинацией двух байтов 0x0D0A, поэтому при операциях ввода-вывода система выполняет преобразование.
Обычно операции обмена с текстовым файлом сопровождаются преобразованием информации аналогично тому, как это происходит для стандартных потоков. По нашей классификации, приведенной в начале главы, текстовые файлы являются форматируемыми. Форматирование не выполняется только в том случае, если содержимое текстового файла обрабатывается именно как символы и строки.
Двоичные файлы не разбиваются на строки, и никаких преобразований при обмене не выполняется — двоичные файлы не являются форматируемыми. Это, во-первых, означает, что операции обмена для двоичных файлов выполняются быстрее. Во-вторых, при операции записи в двоичный файл попадает ровно столько байтов, сколько записываемый объект занимает в памяти. Например, целое число, записанное в двоичный файл, займет на диске sizeof(int) байтов. Это существенно отличается от записи в текстовый файл, где количество записываемых по умолчанию символов зависит от величины числа. Например, число 12 в текстовом файле займет 2 или 3 байта (в зависимости от того, выводится ли число со знаком или без него), а 123 456 — 6 или 7 байт. Примером двоичного файла является исполняемый файл (с расширением exe).
Теперь легко написать программы обработки двоичных файлов. В первом примере мы создаем два двоичных файла из одного массива (листинг 14.7). Для сохранения двоичных файлов нужно создать на диске C каталог BinFiles.
В этом примере два двоичных файла из одного массива создаются разными способами: в файл oonumber1.bin массив выводится поэлементно, а в файл oonumber2.bin — сразу целиком одним оператором. Если мы заглянем в каталог BinFiles, то увидим, что эти два файла имеют одинаковый размер в 40 байт.
Затем те же файлы открываются как входные, читаются и выводятся на экран. Сначала открывается файл oonumber2.bin (в который мы писали массив целиком), и чтение из него выполняется по одному числу. Нетрудно вместо вывода на экран выполнять в цикле, например, суммирование чисел, записанных в этот файл.
Копирование и дозапись двоичных файлов можно выполнить той же функцией filecopy() (см. листинг 14.4), открыв потоки как двоичные, например:
Если файлы совпадают, программа выводит на экран строку
Files are equals!
Между прочим, эта же функция сравнения прекрасно работает с любыми текстовыми файлами, поскольку ввод информации осуществляется посимвольно.
Бинарные файлы
Т екстовые файлы хранят данные в виде текста (sic!). Это значит, что если, например, мы записываем целое число 12345678 в файл, то записывается 8 символов, а это 8 байт данных, несмотря на то, что число помещается в целый тип. Кроме того, вывод и ввод данных является форматированным, то есть каждый раз, когда мы считываем число из файла или записываем в файл происходит трансформация числа в строку или обратно. Это затратные операции, которых можно избежать.
Текстовые файлы позволяют хранить информацию в виде, понятном для человека. Можно, однако, хранить данные непосредственно в бинарном виде. Для этих целей используются бинарные файлы.
Выполните программу и посмотрите содержимое файла output.bin. Число, которое ввёл пользователь записывается в файл непосредственно в бинарном виде. Можете открыть файл в любом редакторе, поддерживающем представление в шестнадцатеричном виде (Total Commander, Far) и убедиться в этом.
Запись в файл осуществляется с помощью функции
Функция возвращает число удачно записанных элементов. В качестве аргументов принимает указатель на массив, размер одного элемента, число элементов и указатель на файловый поток. Вместо массив, конечно, может быть передан любой объект.
Запись в бинарный файл объекта похожа на его отображение: берутся данные из оперативной памяти и пишутся как есть. Для считывания используется функция fread
Функция возвращает число удачно прочитанных элементов, которые помещаются по адресу ptr. Всего считывается count элементов по size байт. Давайте теперь считаем наше число обратно в переменную.
fseek
Одной из важных функций для работы с бинарными файлами является функция fseek
Эта функция устанавливает указатель позиции, ассоциированный с потоком, на новое положение. Индикатор позиции указывает, на каком месте в файле мы остановились. Когда мы открываем файл, позиция равна 0. Каждый раз, записывая байт данных, указатель позиции сдвигается на единицу вперёд.
fseek принимает в качестве аргументов указатель на поток и сдвиг в offset байт относительно origin. origin может принимать три значения
- SEEK_SET - начало файла
- SEEK_CUR - текущее положение файла
- SEEK_END - конец файла. К сожалению, стандартом не определено, что такое конец файла, поэтому полагаться на эту функцию нельзя.
В случае удачной работы функция возвращает 0.
Дополним наш старый пример: запишем число, затем сдвинемся указатель на начало файла и прочитаем его.
Вместо этого можно также использовать функцию rewind, которая перемещает индикатор позиции в начало.
В си определён специальный тип fpos_t, который используется для хранения позиции индикатора позиции в файле.
Функция
используется для того, чтобы назначить переменной pos текущее положение. Функция
используется для перевода указателя в позицию, которая хранится в переменной pos. Обе функции в случае удачного завершения возвращают ноль.
возвращает текущее положение индикатора относительно начала файла. Для бинарных файлов - это число байт, для текстовых не определено (если текстовый файл состоит из однобайтовых символов, то также число байт).
Рассмотрим пример: пользователь вводит числа. Первые 4 байта файла: целое, которое обозначает, сколько чисел было введено. После того, как пользователь прекращает вводить числа, мы перемещаемся в начало файла и записываем туда число введённых элементов.
Вторая программа сначала считывает количество записанных чисел, а потом считывает и выводит числа по порядку.
Примеры
1. Имеется бинарный файл размером 10*sizeof(int) байт. Пользователь вводит номер ячейки, после чего в неё записывает число. После каждой операции выводятся все числа. Сначала пытаемся открыть файл в режиме чтения и записи. Если это не удаётся, то пробуем создать файл, если удаётся создать файл, то повторяем попытку открыть файл для чтения и записи.
2. Пишем слова в бинарный файл. Формат такой - сначало число букв, потом само слово без нулевого символа. Ели длина слова равна нулю, то больше слов нет. Сначала запрашиваем слова у пользователя, потом считываем обратно.
3. Задача - считать данные из текстового файла и записать их в бинарный. Для решения зачи создадим функцию обёртку. Она будет принимать имя файла, режим доступа, функцию, которую необходимо выполнить, если файл был удачно открыт и аргументы этой функции. Так как аргументов может быть много и они могут быть разного типа, то их можно передавать в качестве указателя на структуру. После выполнения функции файл закрывается. Таким образом, нет необходимости думать об освобождении ресурсов.
4. Функция saveInt32Array позволяет сохранить массив типа int32_t в файл. Обратная ей loadInt32Array считывает массив обратно. Функция loadInt32Array сначала инициализирует переданный ей массив, поэтому мы должны передавать указатель на указатель; кроме того, она записывает считанный размер массива в переданный параметр size, из-за чего он передаётся как указатель.
5. Создание таблицы поиска. Для ускорения работы программы вместо вычисления функции можно произвести сначала вычисление значений функции на интервале с определённой точностью, после чего брать значения уже из таблицы. Программа сначала производит табулирование функции с заданными параметрами и сохраняет его в файл, затем подгружает предвычисленный массив, который уже используется для определения значений. В этой программе все функции возвращают переменную типа Result, которая хранит номер ошибки. Если функция отработала без проблем, то она возвращает Ok (0).
6. У нас имеются две структуры. Первая PersonKey хранит логин, пароль, id пользователя и поле offset. Вторая структура PersonInfo хранит имя и фамилию пользователя и его возраст. Первые структуры записываются в бинарный файл keys.bin, вторые структуры в бинарный файл values.bin. Поле offset определяет положение соответствующей информации о пользователе во втором файле. Таким образом, получив PersonKey из первого файла, по полю offset можно извлечь из второго файла связанную с данным ключом информацию.
Зачем так делать? Это выгодно в том случае, если структура PersonInfo имеет большой размер. Извлекать массив маленьких структур из файла не накладно, а когда нам понадобится большая структура, её можно извлечь по уже известному адресу в файле.
Читайте также:
- Вирус сексуального желания 3 падение столицы
- Как принимать арбидол для профилактики гриппа взрослым
- Передача вируса у собак
- Как лечить грипп с рвотой у детей
- Эпидемия гриппа 2020 в россии количество зараженных