Стратегии обработки файлов

Стратегии обработки файлов

Уже на ранних стадиях любого проекта разработки приложения или подготовки его к переносу на другую платформу приходится принимать решение относительно того, должна ли осуществляться обработка файлов с использованием функций библиотеки С или функций Windows. Характер этого решения не относится к категории "или-или", поскольку при соблюдении определенных мер предосторожности смешанное применение функций возможно даже по отношению к одному и тому же файлу.

Библиотека С обладает рядом явных преимуществ, среди которых можно выделить следующие:

• Полученный программный код легко переносится на другие системы.

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

• Функции библиотеки С обычно проще в использовании по сравнению с функциями Windows.

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

• Как показано в главе 7, функции библиотеки С способны работать и в средах с многопоточной поддержкой.

Тем не менее, использование библиотеки С налагает некоторые ограничения. В пользу этого утверждения можно привести перечисленные ниже соображения: 

• Средства библиотеки С не обеспечивают управление каталогами и обход дерева каталогов и в большинстве случаев не позволяют получать или устанавливать атрибутов файлов.

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

• Библиотека С не предоставляет такие развитые возможности, как защита файлов, отображение файлов, блокирование файлов, асинхронный ввод/вывод и взаимодействие между процессами. Вместе с тем, как показано в приложении В, использование некоторых из этих возможностей в ряде случаев может обеспечивать существенное улучшение показателей производительности программ.

Альтернативным вариантом является перенос существующего UNIX-кода с привлечением библиотеки совместимости (compatibility library). Microsoft С предоставляет ограниченную библиотеку совместимости, включающую многие, хотя и далеко не все, функции UNIX. К числу функций UNIX, входящих в состав библиотеки Microsoft, относятся функции ввода/вывода, однако большинство функций управления процессами, не говоря о многих других функциях, в ней отсутствуют. В именах функций-аналогов присутствует префикс в виде символа подчеркивания, например, _read, _write, _stat и так далее.

Решения относительно смешанного использования функций библиотеки С, библиотеки совместимости и Win32/64 API должны приниматься на основании требований проекта. Многие из преимуществ функций Windows будут продемонстрированы в следующих главах, а для ознакомления с количественными данными, характеризующими производительность, которые пригодятся вам в тех случаях, когда этот фактор становится решающим, вы можете обратиться к приложению В.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Часть III Стратегии

Из книги Секреты и ложь. Безопасность данных в цифровом мире автора Шнайер Брюс

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


Программы для обработки MP3-файлов

Из книги Музыкальный центр на компьютере автора Леонтьев Виталий Петрович

Программы для обработки MP3-файлов Mp3directCut Сайт: http://www.mpesch3.de/Размер: 0,1 МбСтатус: FreewareИзменять MP3-файлы с помощью громоздкого звукового редактора очень неудобно. Да и на качестве звука отражается не лучшим образом: сначала файл «разжимается», потом, после обработки,


6 УСТАНОВЛЕНИЕ СТРАТЕГИИ ДОКУМЕНТИРОВАНИЯ

Из книги ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ. РУКОВОДСТВО ПО УПРАВЛЕНИЮ ДОКУМЕНТИРОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ автора Автор неизвестен

6 УСТАНОВЛЕНИЕ СТРАТЕГИИ ДОКУМЕНТИРОВАНИЯ Стратегии документирования, подготовленные и отслеживаемые главной администрацией, обеспечивают руководства для ответственных лиц, принимающих решения на всех нижних уровнях. Стратегия обеспечивает главное направление, но


Фирмы по разработке ПО и их стратегии

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Фирмы по разработке ПО и их стратегии У фирмы по разработке ПО всегда существует искушение создавать решения, преднамеренно не удовлетворяющие критериям повторного использования, из опасения не получить следующий заказ, - поскольку если возможности уже приобретенного


О целесообразности привлечения функций стандартной библиотеки C для обработки файлов

Из книги Системное программирование в среде Windows автора Харт Джонсон М

О целесообразности привлечения функций стандартной библиотеки C для обработки файлов Несмотря на всю уникальность возможностей Windows, старый добрый язык С и его стандартная библиотека ANSI С по-прежнему могут с успехом использоваться при решении большинства задач,


Стратегии использования символов Unicode

Из книги Стандарты программирования на С++. 101 правило и рекомендация автора Александреску Андрей

Стратегии использования символов Unicode Приступая к работе над проектом в Windows, либо для разработки нового программного кода, либо для переноса существующего, программист, в зависимости от требований проекта, может выбрать одну из четырех стратегий.1. Только 8-битовые


Вопросы организации и стратегии

Из книги Программирование игр и головоломок автора Арсак Жак

Вопросы организации и стратегии Если бы строители строили здания так же, как программисты пишут программы, — то первый же залетевший дятел разрушил бы всю цивилизацию. — Джеральд Вайнберг (Gerald Weinberg) Следуя великой традиции С и С++, мы начинаем отсчет с нуля. Главный совет


3. Игры без стратегии

Из книги Социальные сети [Источники новых клиентов для бизнеса] автора Парабеллум Андрей Алексеевич

3. Игры без стратегии


3. Игры без стратегии

Из книги Linux программирование в примерах автора Роббинс Арнольд

3. Игры без стратегии Игра 6.Единственная задача: считать белые шашки. На самом деле, черные можно получить, сравнивая шашку на шашкой в тайной комбинации и в комбинации, предложенной игроком.Для подсчета белых шашек у вас есть много возможностей.1. Во время подсчета черных


3. Игры без стратегии

Из книги Wiki-правительство [Как технологии могут сделать власть лучше, демократию – сильнее, а граждан – влиятельнее] автора Новек Бет

3. Игры без стратегии Игра 13.Задача о наиболее длинном взятии не имеет однозначного решения. Вот как ее сделал я — с учетом моих привычек в программировании и упрощений, предоставляемых моим микрокомпьютером.Я представил всю игру одной-единственной цепочкой символов с


Основы стратегии

Из книги Идеальный программист. Как стать профессионалом разработки ПО автора Мартин Роберт С.

Основы стратегии Сначала поговорим о базовых вещах, основах стратегии продвижения. Основные социальные сети, которые сейчас существуют в России, – это:• ВКонтакте;• Одноклассники;• Мой мир;• Facebook;• Twitter;• LiveJournal.Кроме того, стоит упомянуть сервис, который позволяет


10.8.3. Родительский надзор: три различные стратегии

Из книги автора

10.8.3. Родительский надзор: три различные стратегии Как описано в разделе 9.1.1 «Создание процесса: fork()», одним побочным эффектом вызова fork() является создание между процессами отношений родитель-потомок. Родительский процесс может ждать завершения одного или более из своих


Стратегии реализации TCP

Из книги автора

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


8 Стратегии тестирования

Из книги автора

8 Стратегии тестирования Профессиональные разработчики тестируют свой код. Однако тестирование не сводится к написанию нескольких модульных или приемочных тестов. Написание этих тестов – дело полезное, но отнюдь не достаточное. Любой группе профессиональных