Библиотека - это набор функций, которые могут быть использованы во многих программах. Компиляторы языка Си оснащены одной или более библиотеками. Кроме того, программист сам может создавать собственные библиотеки. Обычно библиотека - это файл, содержащий объектный код различных функций, представленный в специальном формате.
Ниже приводится список библиотечных функций, которые обычно поставляются вместе с компилятором Си:
Все эти функции поставляются с компилятором Си ОС UNIX. Стандарт ANSI языка Си языка Си специфицирует, что эти и другие функции должны быть в составе компилятора Си. Рекомендуемый список основан на составе библиотек, поставляемых вместе с компилятором Си ОС UNIX.
Рис. 1.  Библиотеки в ОС UNIX
На рис.1 представлен сокращенный список библиотек и сопровождающих файлов, поставляемых вместе с компилятором Си ОС UNIX. Хотя места хранения этих файлов и их форматы зависят от версии системы UNIX, общая организация библиотеки такова же, как и в среде других операционных систем.
В ОС UNIX стандартные библиотеки находятся в каталоге in/usr/ccs/lib. Особый интерес представляет файл /usr/ccs/lib/libc.so, называемый "Стандартная библиотека Си". Он содержит объектный код стандартных функций ввода-вывода, функций обработки строк и символов, функций распределения памяти и функций общего назначения. Указанный файл используется редактором связей для автоматического поиска идентификатора, неопределенного в используемой программе. Например, если программа использует функцию printf(), редактор связей выполняет поиск определения printf() в каталоге /usr/ccs/lib/libc.so (разделяемой объектной библиотеке). Определение printf() отображается в виртуальное адресное пространство программы во время выполнения. Это называется динамическим связыванием. Оно позволяет связывать разделяемые объекты с исполнимым кодом во время выполнения программ. Это позволяет обеспечить совместное использование несколькими программами размещенных в памяти библиотечных функций.
В руководстве по некоторым функциям указано, что в использующие их программы должен быть вставлен файл заголовков. Например, файл stdio.h - для функций ввода-вывода, string.h - для функций обработки строк. В ОС UNIX эти файлы находятся в каталоге /usr/include.
В число других библиотек, поставляемых вместе с компилятором Си ОС UNIX, входят математическая библиотека /usr/ccs/lib/libm.a и библиотека функций работы с экраном /usr/ccs/lib/libcurses.a. Библиотека функций работы с экраном - набор не зависящих от типа монитора функций для управления экраном, например, очистки экрана, позиционирования курсора, подчеркивания, выделения цветом и т.д. Если используются функции из библиотеки, отличной от стандартная библиотека Си, необходимо сообщить об этом редактору связей путем указания в командной строке флага -l, который должен следовать после имени исходного файла.
Пример 1
$cc -Xa prog.c -lm используются математические функции
$cc -Xa prog.c -lcurses используются функции работы с экраном