Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Библиотеки




Язык C не предоставляет встроенных возможностей для выполнения таких распространенных операций, как ввод/вывод, управление памятью, работа со строками, и т.п. Эти возможности определены в стандартной библиотеке, которая компонуется в вашу программу.

Библиотекой называют набор объектных файлов, сгруппированных в единый файл и проиндексированных. Когда команда компоновки обнаруживает некоторую библиотеку в списке объектных файлов для компоновки, она проверяет, содержат ли уже скомпонованные объектные файлы вызовы для функций, определенных в одном из файлов библиотек. Если такие функции найдены, соответствующие вызовы связываются с кодом объектного файла из библиотеки.

Библиотеки обычно определяются через аргументы вида -llibrary-name. В частности, -lg++ означает библиотеку стандартных функций C++, а -lm определяет библиотеку различных математических функций (sin, cos, arctan, sqrt, и т.д.). Библиотеки должны быть перечислены после исходных или объектных файлов, содержащих вызовы к соответствующим функциям.

Библиотека GNU C определяет все библиотечные функции, определенные стандартом ISO C и дополнительные возможности, указанные в стандарте POSIX и иных предписаниях для операционных систем Unix, а также расширения, специфичные для систем GNU. Она является наиболее фундаментальной системной библиотекой и обязательно присутствует в любой системе Linux.

 

В составе библиотеки можно выделить следующие основные группы функций:

· Сообщения об ошибке - описывает способы определения и сообщения об ошибках.

· Языковые возможности - содержит информацию о поддержке библиотекой стандартных частей языка C, включая оператор `sizeof' и символическую константу `NULL', функции с переменным числом аргументов и константы, определяющие пределы и другие свойства для числовых типов. Содержит также простейший механизм отладки, позволяющий помещать в код диагностирующие макросы.

· Управление памятью - описывает возможности управления реальной и виртуальной памятью, включая динамическое распределение. Если вы не уверены в требуемом количестве памяти для объектов программы, вы можете выделить ее динамически и работать с ней через указатели.

· Работа с символами - содержит информацию о функциях классификации символов (например, `isspace') и функциях преобразования типа для символов.

· Работа со строками и массивами - описывает функции работы со строками (массивами символов, заканчивающимися 0) и обычными байтовыми массивами, включая операции копирования и сравнения.

· Общий ввод/вывод - дает общее представление о возможностях библиотеки по вводу/выводу и содержит информацию о базовых концепциях, например, об именах файлов.

· Ввод/вывод через потоки - описывает операции ввода / вывода с использованием потоков (или объектов `FILE *'). Здесь находятся функции библиотеки C, указанные в `stdio.h'.

· Низкоуровневый ввод/вывод - содержит информацию о вводе/выводе через дескрипторы файлов. Механизм файловых дескрипторов является низкоуровневым и специфичен для систем семейства Unix.

· Интерфейс файловой системы - описывает операции над целыми файлами, например, функции удаления и переименования, а также создания каталогов. Содержит информацию о доступе к атрибутам файла, например, к имени владельца и правам доступа.

· Каналы и очереди - простые механизмы межпроцессного взаимодействия. Каналы позволяют осуществлять взаимодействие между связанными процессами (например, между родителем и потомком), а очереди - между процессами, разделяющими общую файловую систему на данной машине.

· Сокеты - более сложный механизм межпроцессного взаимодействия, позволяющий процессам на разных компьютерах общаться через сеть. Содержит информацию о способах адресации Internet и использовании баз данных сети.

· Низкоуровневый интерфейс с терминалом - описывает способы изменения атрибутов терминального устройства.

· Математика - содержит информацию о математических функциях библиотеки. Они включают в себя генератор случайных чисел, функции деления с остатком, тригонометрические и экспоненциальные функции над числами с плавающей запятой.

· Низкоуровневая арифметика - описывает функции простой арифметики, анализа величин с плавающей точкой, а также чтения чисел из строк.

· Сортировка и поиск - содержит информацию о функциях, используемых для сортировки и поиска в массивах. Вы можете использовать эти функции для любых массивов, создав необходимую функцию сравнения.

· Совпадение с образцом - предоставляет функции для проверки текста на совпадение с регулярными выражениями или образцами имени файла.

· Дата и время - описывает функции измерения календарного и машинного времени, а также функции установки будильников и таймеров.

· Работа с кодировкой - содержит информацию о работе с различными символами и строками, состоящими из символов, не входящих в стандартный набор типа `char'.

· Работа с локалью - описывает выбор определенной страны или языка, влияющий на поведение функций библиотеки. Например, локаль влияет на формат денежных величин.

· Нелокальные переходы - поясняет работу с функциями `setjmp' и `longjmp'. Эти функции предоставляют возможности безусловного перехода из одной функции в другую.

· Обработка сигналов - описывает механизм сигналов, способы установки обработчиков, реагирующих на сигналы определенного вида, способы запрета реакции на сигналы в критических секциях программы.

· Базовые функции программы - содержатся функции доступа к аргументам командной строки и переменным окружения.

· Процессы - описание функций запуска новых процессов и программ.

· Управление заданиями - содержит функции для управления группами процессов и терминалом. Эти функции полезны, если вы разрабатываете собственную оболочку или программу, которая управляет заданиями самостоятельно.

· Сервис поиска имен - описывает сервис для поиска имен в системных базах данных, определяет сервис, доступный для базы данных, а также способы его реализации, позволяя разработку собственных сервисов.

· Базы данных пользователей и групп - разъясняются способы доступа к соответствующим базам системы.

· Управление системой - содержит функции для получения информации о конфигурации системы - как программной, так и аппаратной.

Конфигурация системы - функции для получения информации о системных




Поделиться с друзьями:


Дата добавления: 2015-06-27; Просмотров: 436; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.