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

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

Несмотря на всю уникальность возможностей Windows, старый добрый язык С и его стандартная библиотека ANSI С по-прежнему могут с успехом использоваться при решении большинства задач, связанных с обработкой файлов. Кроме того, библиотека С (указание на ее соответствие стандарту ANSI С мы будем часто опускать) содержит большое число очень нужных функций, аналогов которых среди системных вызовов нет. К их числу относятся, например, функции, описанные в заголовочных файлах <string.h>, <stdlib.h> и <signal.h>, а также функции форматированного и символьного ввода/вывода. В то же время, имеются и такие функции, как fopen и fread, описанные в заголовочном файле <stdio.h>, для которых находятся близко соответствующие им системные вызовы.

В каких же случаях при обработке файлов можно обойтись библиотекой С, а в каких необходимо использовать системные вызовы Windows? Тот же вопрос можно задать и в отношении использования потоков (streams) ввода/вывода C++ или системы ввода/вывода, которая предоставляется платформой .NET. Простых ответов на эти вопросы не существует, но если во главу угла поставить переносимость программ на платформы, отличные от Windows, то в тех случаях, когда приложению требуется только обработка файлов, а не, например, управление процессами или другие специфические возможности Windows, предпочтение следует отдавать библиотеке С и потокам ввода/вывода C++. Вместе с тем, многими программистами ранее уже делались попытки выработать рекомендации относительно адекватности использования библиотеки С в тех или иных случаях, и эти же рекомендации должны быть применимы и в отношении Windows. Кроме того, с учетом возможностей расширения функциональности, а также повышения производительности и гибкости программ, обеспечиваемые Windows, нередко оказывается более удобным или даже необходимым не ограничиваться библиотекой С, в чем вы постепенно станете убеждаться уже начиная с главы 3. К числу возможностей Windows, не поддерживаемых библиотекой С, относятся блокирование и отображение файлов (необходимое для разделения общих областей памяти), асинхронный ввод/вывод, произвольный доступ к файлам чрезвычайно крупных размеров (4 Гбайт и выше) и взаимодействие между процессами.

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

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

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

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

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

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

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


10.2. Приведение формул к стандартной форме

Из книги Программирование на языке Пролог автора Клоксин У.

10.2. Приведение формул к стандартной форме Как было показано в предыдущем разделе, формулы исчисления предикатов, записанные с использованием связок -› (импликация) и ‹-› (эквивалентность), могут быть переписаны лишь с использованием связок& (конъюнкция), # (дизъюнкция) и


19.2.4.3. Придерживайтесь стандартной практики именования файлов

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

19.2.4.3. Придерживайтесь стандартной практики именования файлов Еще до просмотра README-файла бесстрашный исследователь внимательно изучит имена файлов в корневом каталоге распакованного дистрибутива. Имена файлов в нем сами по себе способны нести полезную информацию.


Совет 46. Передавайте алгоритмам объекты функций вместо функций

Из книги Эффективное использование STL автора Мейерс Скотт

Совет 46. Передавайте алгоритмам объекты функций вместо функций Часто говорят, что повышение уровня абстракции языков высокого уровня приводит к снижению эффективности сгенерированного кода. Александр Степанов, изобретатель STL, однажды разработал небольшой комплекс


19.2.4.3. Придерживайтесь стандартной практики именования файлов

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

19.2.4.3. Придерживайтесь стандартной практики именования файлов Еще до просмотра README-файла бесстрашный исследователь внимательно изучит имена файлов в корневом каталоге распакованного дистрибутива. Имена файлов в нем сами по себе способны нести полезную информацию.


Копирование файлов с использованием стандартной библиотеки С

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

Копирование файлов с использованием стандартной библиотеки С Как видно из текста программы 1.1, стандартная библиотека С поддерживает объекты потоков ввода/вывода FILE, которые напоминают, несмотря на меньшую общность, объекты Windows HANDLE, представленные в программе


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

Из книги Цифровой журнал «Компьютерра» № 167 автора Журнал «Компьютерра»

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


ГЛАВА 5 Управление памятью, отображение файлов и библиотеки DLL

Из книги Поиск персонала с помощью компьютера. Как сэкономить на кадровом агентстве автора Гладкий Алексей Анатольевич

ГЛАВА 5 Управление памятью, отображение файлов и библиотеки DLL Управление динамической памятью в той или иной форме требуется в большинстве программ. Необходимость в этом возникает всякий раз, когда требуется создавать структуры данных, размер которых не может быть


ПРИЛОЖЕНИЕ Б Сопоставление функций Windows, UNIX и библиотеки С

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

ПРИЛОЖЕНИЕ Б Сопоставление функций Windows, UNIX и библиотеки С В этом приложении приводятся таблицы, в которых представлены функции Windows (Win32 и Win64), описанные в основном тексте, а также сопоставимые с ними функции UNIX/Linux[36] и стандартной библиотеки ANSI С, если таковые


Кейс для телефона, задействующий тактильные варианты привлечения внимания Николай Маслухин

Из книги C++ для начинающих автора Липпман Стенли

Кейс для телефона, задействующий тактильные варианты привлечения внимания Николай Маслухин Опубликовано 05 апреля 2013 Удивительное дело, но иногда чехлы для телефонов могут быть более инновационными, чем сами телефоны, для которых они


Источники привлечения персонала

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

Источники привлечения персонала Чтобы пригласить кандидата на собеседование, нужно вначале его найти – с этой аксиомой вряд ли кто-то поспорит. Источников привлечения персонала существует достаточно много, и все их можно разделить на два вида: внутренние источники и


Рассылки как средство привлечения персонала

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

Рассылки как средство привлечения персонала Достаточно эффективным методом привлечения сотрудников является использование для этих целей рекламных рассылок, которые называются спамом. Конечно, здесь можно рассуждать о моральной стороне вопроса (кто из нас не


19.11.2. Вызов функций из файла функций

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

19.11.2. Вызов функций из файла функций Мы уже рассматривали, каким образом функции вызываются из командной строки. Эти типы функций обычно используются утилитами, создающими системные сообщения.А теперь воспользуемся снова описанной выше функцией, но в этом случае


19.12. Загрузка файлов, которые состоят не только из функций

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

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


12.3.5. Адаптеры функций для объектов-функций

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

12.3.5. Адаптеры функций для объектов-функций В стандартной библиотеке имеется также ряд адаптеров функций, предназначенных для специализации и расширения как унарных, так и бинарных объектов-функций. Адаптеры – это специальные классы, разбитые на следующие две