Язык C — универсальный язык программирования, сочетающий возможности языков высокого и низкого уровня. Он был разработан на основе языков BCPL и B сотрудником компании Bell Laboratories Деннисом Ритчи для решения задач системного программирования. В частности, язык C стал основным инструментальным средством программной реализации различных версий операционной системы UNIX. Однако, развитые структуры данных, свободный синтаксис и, особенно, богатые функциональные возможности, присущие языку C, быстро сделали его популярным среди разработчиков прикладного программного обеспечения в различных операционных средах.
Функциональные возможности языка C реализует обширный набор стандартных функций, которые организованы в библиотеки об'ектных модулей. Об'ектный код функций, которые обеспечивают традиционную прикладную обработку данных, сосредоточен в стандартной библиотеке об'ектных модулей системы программирования C. Современные реализации системы программирования C предоставляют стандартную библиотеку в формате статического архива и динамического разделяемого об'екта. Например, классические реализации системы программирования C для OS UNIX предоставляют статическую и динамически разделяемую версии стандартной библиотеки об'ектных модулей в файлах /lib/libc.a и /lib/libc.so, соответственно. Чтобы разрешить вызов библиотечных функций в исполняемом коде прикладной программы, необходима статическая или динамическая компановка ее об'ектных файлов с модулями стандартной библиотеки.
Программный интерфейс функций стандартной библиотеки обеспечивает набор стандартных заголовочных файлов системы программирования C. Они имеют формат текстовых файлов с расширением ".h" и включаются в исходный код прикладной программы на этапе его препроцессорной обработки директивой #include. Файлы стандартных заголовков декларируют форматы вызова всех функций стандартной библиотеки, устанавливая типы их аргументов и кодов возврата, а также содержат определение необходимых констант, описание абстрактных структур данных и об'явление внешних переменных, которые требуются для корректного вызова соответствующих стандартных функций в прикладной программе. Каждый заголовочный файл обслуживает определенную группу стандартных функций, которые об'единяет общий характер обработки данных. Расположение набора стандартных файлов заголовков фиксировано для каждой конкретной реализации системы программирования C. Например, для классических реализаций OS UNIX стандартные заголовки сосредоточены в каталогах /usr/include и /usr/include/sys.
Обязательный состав стандартной библиотеки и набора заголовочных файлов регламентирован в различных стандартах языка C. Первый стандарт языка C был принят в 1989 году Американским Национальным Институтом Стандартов ANSI (American National Standards Institute), а также Международной Организацией Стандартов ISO (International Standards Organization). Эту версию языка C обычно называют C89. Последний стандарт ANSI/ISO языка C был принят в 1999 году. Он стандартизует современную версию языка C, которую принято называть C99. Программный интерфейс функций стандартной библиотеки, принятый в этих стандартах, регламентирует, в частности, следующие классические аспекты прикладной обработки информации:
+ классифицирование символов;
+ обработка символьных строк;
+ манипулирование блоками памяти;
+ динамическое распределение памяти;
+ буферизованный ввод-вывод;
+ сортировка, поиск и преоразование данных;
+ обработка времени и даты;
+ организация нелокальных переходов;
+ программирование функций с переменным числом аргументов.
Разработка программного интерфейса на основе стандартной библиотеки функций языка C в соответствии со стандартами C89 и С99 гарантирует мобильность исходного кода прикладного программного обеспечения в любых операционных средах.