INTRO(3)

НАЗВАНИЕ
intro - введение в описание функций и библиотек

ОПИСАНИЕ
В этом разделе описываются функции, отличные от тех, которые непосредственно вызывали системные примитивы и были описаны в разделе 2 настоящего Справочника. Функции размещаются в нескольких библиотеках. Описание функций разбито на подразделы, которые идентифицируются буквой после номера раздела:

3C Эти функции, совместно с описанными в разделе 2 и подразделе 3S, об единены в стандартную библиотеку языка C, libc, которая автоматически используется C-компилятором cc(1). Подразделы 3C и 3S об единены и в настоящем Справочнике. Редактор связей ld(1) просматривает библиотеку libc при указании опции -lc. Может быть использована "разделяемая" версия стандартной библиотеки, для чего надо задать опцию -lc_s. В результате можно получить меньший по об ему выполняемый файл. В описании многих функций указаны включаемые файлы, содержащие декларации, нужные для использования функций.
3S Эти функции составляют стандартный пакет ввода/вывода [см. stdio(3S)]. Как уже отмечалось, они находятся в библиотеке libc, а их декларации - во включаемом файле <stdio.h>.
3M Функции, описанные в данном подразделе, составляют математическую библиотеку, libm. Она автоматически подключается компилятором с Фортрана f77(1). По умолчанию C-компилятор cc(1) ее не подключает; однако редактор связей просматривает эту библиотеку при указании опции -lm. Необходимые декларации и определения употребительных математических констант помещены во включаемый файл <math.h> [см. math(5)].
3X В этом подразделе описаны некоторые специализированные библиотеки. Имена библиотек приведены на соответствующих страницах Справочника.

ОПРЕДЕЛЕНИЯ
Символ - это любой набор бит, составляющих один байт.

Пустой символ есть символ со значением 0. В языке C пустой символ записывается как '\0'.

Символьный массив есть последовательность символов.

Цепочка символов, или просто цепочка - это символьный массив, завершающийся пустым символом.

Пустая цепочка есть символьный массив, состоящий только из пустого символа.

Пустой указатель (NULL) есть значение, полученное преобразованием нуля в указатель. Язык C гарантирует, что это значение не будет совпадать ни с одним из допустимых указателей, поэтому многие функции, возвращающие указатели, выдают NULL для индикации ошибки. NULL определен как 0 в файле <stdio.h>; если пользователь не включает этот файл, он должен явно записать соответствующее определение.

ПРИМЕЧАНИЯ
Информацию, относящуюся к системе разделения удаленных файлов (РУФ), следует принимать во внимание, только если на Вашей установке есть соответствующее аппаратное и программное обеспечение; в стандартную конфигурацию оно не входит. По этой причине в данном Справочнике отсутствует подраздел 3N, посвященный библиотеке функций, обслуживающих сеть.

Поскольку стандартный компилятор с Фортрана f77(1) содержит многочисленные ошибки, и вместо него используется компилятор SVS-Фортран, в Справочнике отсутствует подраздел 3F с описанием Фортран-библиотеки.

ФАЙЛЫ


	LIBDIR                  Обычно /lib.

	LIBDIR/libc.a

	LIBDIR/libc_s.a

	LIBDIR/libm.a

	/shlib/libc_s

СМ. ТАКЖЕ
ar(1), cc(1), f77(1), ld(1), lint(1), nm(1) в Справочнике пользователя.
intro(2), stdio(3S), math(5).

ДИАГНОСТИКА
Функции из стандартной библиотеки языка C (3C) и математической библиотеки (3M) могут выдать значения, равные 0, +HUGE или -HUGE (наибольшее по абсолютной величине число одинарной точности с плавающей точкой; значение HUGE описано во включаемом файле <math.h>), если для переданных аргументов результат неопределен или непредставим в пределах разрядной сетки. В этих случаях внешней переменной errno [см. intro(2)] присваивается значение EDOM или ERANGE.

ПРЕДОСТЕРЕЖЕНИЯ
Многие функции вызывают и/или ссылаются на другие функции и внешние переменные, описанные в этом разделе и в разделе 2 (Системные вызовы). Если в программе по неосторожности описана функция или внешняя переменная с тем же именем, предполагаемая библиотечная версия функции или внешней переменной не может быть подключена. Верификатор C-программ lint(1) проверяет их на корректность и сообщает о подобных конфликтах имен как о многократных декларациях. Конфликты с определениями, относящимися к разделам 2, 3C и 3S, проверяются автоматически. Контроль других определений может быть инициирован с помощью опции -l (например, опция -lm включает контроль деклараций, относящихся к разделу 3M, то есть к математической библиотеке). Следует настоятельно рекомендовать верификацию C-программ.