Язык C не предоставляет встроенных возможностей для выполнения таких
распространенных операций, как ввод/вывод, управление памятью, работа со
строками, и т.п. Эти возможности определены в стандартной
библиотеке, которая компонуется в вашу программу.
Библиотека GNU C определяет все библиотечные функции, определенные
стандартом ISO C и дополнительные возможности, указанные в
стандарте POSIX и иных предписаниях для операционных систем Unix, а также
расширения, специфичные для систем GNU. Она является наиболее фундаментальной
системной библиотекой и обязательно присутствует в любой системе Linux.
В составе библиотеки можно выделить следующие основные группы функций:
Сообщения об ошибке - описывает способы определения и
сообщения об ошибках.
Языковые возможности - содержит информацию о поддержке библиотекой
стандартных частей языка C, включая оператор `sizeof' и символическую
константу `NULL', функции с переменным числом аргументов и константы,
определяющие пределы и другие свойства для числовых типов. Содержит также
простейший механизм отладки, позволяющий помещать в код диагностирующие макросы.
Управление памятью - описывает возможности управления реальной и
виртуальной памятью, включая динамическое распределение. Если вы не уверены в
требуемом количестве памяти для объектов программы, вы можете выделить ее
динамически и работать с ней через указатели.
Работа с символами - содержит информацию о функциях классификации
символов (например, `isspace') и функциях преобразования типа для символов.
Работа со строками и массивами - описывает функции работы со
строками (массивами символов, заканчивающимися 0) и обычными байтовыми
массивами, включая операции копирования и сравнения.
Общий ввод/вывод - дает общее представление о возможностях
библиотеки по вводу/выводу и содержит информацию о базовых концепциях,
например, об именах файлов.
Ввод/вывод через потоки - описывает операции ввода / вывода с
использованием потоков (или объектов `FILE *'). Здесь находятся функции
библиотеки C, указанные в `stdio.h'.
Низкоуровневый ввод/вывод - содержит информацию о
вводе/выводе через дескрипторы файлов. Механизм файловых дескрипторов является
низкоуровневым и специфичен для систем семейства Unix.
Интерфейс файловой системы - описывает операции над целыми файлами,
например, функции удаления и переименования, а также создания каталогов.
Содержит информацию о доступе к атрибутам файла, например, к имени
владельца и правам доступа.
Каналы и очереди - простые механизмы
межпроцессного взаимодействия. Каналы позволяют осуществлять взаимодействие между связанными
процессами (например, между родителем и потомком), а очереди - между
процессами, разделяющими общую файловую систему на данной машине.
Сокеты - более сложный механизм межпроцессного
взаимодействия, позволяющий процессам на разных компьютерах общаться через сеть.
Содержит информацию о способах адресации Internet и использовании баз данных
сети.
Низкоуровневый интерфейс с терминалом - описывает способы изменения
атрибутов терминального устройства.
Математика - содержит информацию о математических функциях
библиотеки. Они включают в себя генератор случайных чисел, функции деления с
остатком, тригонометрические и экспоненциальные функции над числами с плавающей
запятой.
Низкоуровневая арифметика - описывает функции простой арифметики,
анализа величин с плавающей точкой, а также чтения чисел из строк.
Сортировка и поиск - содержит информацию о функциях, используемых
для сортировки и поиска в массивах. Вы можете использовать эти функции для любых
массивов, создав необходимую функцию сравнения.
Совпадение с образцом - предоставляет функции для проверки текста на
совпадение с регулярными выражениями или образцами имени файла.
Дата и время - описывает функции измерения календарного и
машинного времени, а также функции установки будильников и таймеров.
Работа с кодировкой - содержит информацию о работе с различными
символами и строками, состоящими из символов, не входящих в стандартный набор
типа `char'.
Работа с локалью - описывает выбор определенной страны или языка,
влияющий на поведение функций библиотеки. Например, локаль влияет на формат
денежных величин.
Нелокальные переходы - поясняет работу с функциями
`setjmp' и
`longjmp'. Эти функции предоставляют возможности безусловного перехода из одной
функции в другую.
Обработка сигналов - описывает механизм сигналов, способы установки
обработчиков, реагирующих на сигналы определенного вида, способы запрета
реакции на сигналы в критических секциях программы.
Базовые функции программы - содержатся функции доступа к аргументам
командной строки и переменным окружения.
Процессы - описание функций запуска новых процессов и программ.
Управление заданиями - содержит функции для управления группами
процессов и терминалом. Эти функции полезны, если вы разрабатываете
собственную оболочку или программу, которая управляет заданиями
самостоятельно.
Сервис поиска имен - описывает сервис для поиска имен в системных
базах данных, определяет сервис, доступный для базы данных, а также способы
его реализации, позволяя разработку собственных сервисов.
Базы данных пользователей и групп - разъясняются способы доступа к
соответствующим базам системы.
Управление системой - содержит функции для получения информации о
конфигурации системы - как программной, так и аппаратной.
Конфигурация системы - функции для получения информации о системных
ограничениях. Большинство параметров предоставлены для совместимости с POSIX.