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