INTRO(3) INTRO(3) НАЗВАНИЕ intro - введение в описание функций и библиотек ОПИСАНИЕ В этом разделе описываются функции, отличные от тех, которые непосредственно вызывали системные примитивы и были описаны в разделе 2 настоящего Справочника. Функ- ции размещаются в нескольких библиотеках. Описание функций разбито на подразделы, которые идентифицируются буквой после номера раздела: 3C Эти функции, совместно с описанными в разделе 2 и подразделе 3S, объединены в стандартную библиотеку языка C, libc, которая автоматически используется C-компилятором cc(1). Подразделы 3C и 3S объедине- ны и в настоящем Справочнике. Редактор связей ld(1) просматривает библиотеку libc при указании опции -lc. Может быть использована "разделяемая" версия стандартной библиотеки, для чего надо за- дать опцию -lc_s. В результате можно получить меньший по объему выполняемый файл. В описании многих функций указаны включаемые файлы, содержа- щие декларации, нужные для использования функций. 3S Эти функции составляют стандартный пакет ввода/вы- вода [см. stdio(3S)]. Как уже отмечалось, они на- ходятся в библиотеке libc, а их декларации - во включаемом файле . 3M Функции, описанные в данном подразделе, составляют математическую библиотеку, libm. Она автоматически подключается компилятором с Фортрана f77(1). По умолчанию C-компилятор cc(1) ее не подключает; од- нако редактор связей просматривает эту библиотеку при указании опции -lm. Необходимые декларации и определения употребительных математических конс- тант помещены во включаемый файл [см. math(5)]. 3X В этом подразделе описаны некоторые специализиро- ванные библиотеки. Имена библиотек приведены на соответствующих страницах Справочника. ОПРЕДЕЛЕНИЯ Символ - это любой набор бит, составляющих один байт. Пустой символ есть символ со значением 0. В языке C пустой символ записывается как '\0'. Символьный массив есть последовательность символов. Цепочка символов, или просто цепочка - это символьный массив, завершающийся пустым символом. Пустая цепочка есть символьный массив, состоящий только из пустого символа. Пустой указатель (NULL) есть значение, полученное пре- образованием нуля в указатель. Язык C гарантирует, что это значение не будет совпадать ни с одним из допусти мых указателей, поэтому многие функции, возвращающие указатели, выдают NULL для индикации ошибки. NULL опре- делен как 0 в файле ; если пользователь не включает этот файл, он должен явно записать соответст вующее определение. ПРИМЕЧАНИЯ Информацию, относящуюся к системе разделения удаленных файлов (РУФ), следует принимать во внимание, только ес- ли на Вашей установке есть соответствующее аппаратное и программное обеспечение; в стандартную конфигурацию оно не входит. По этой причине в данном Справочнике от- сутствует подраздел 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 описано во включаемом файле ), если для переданных аргументов результат неопределен или непредставим в пределах разрядной сетки. В этих случаях внешней переменной errno [см. intro(2)] присваивается значение EDOM или ERANGE. ПРЕДОСТЕРЕЖЕНИЯ Многие функции вызывают и/или ссылаются на другие функ- ции и внешние переменные, описанные в этом разделе и в разделе 2 (Системные вызовы). Если в программе по неос- торожности описана функция или внешняя переменная с тем же именем, предполагаемая библиотечная версия функции или внешней переменной не может быть подключена. Вери- фикатор C-программ lint(1) проверяет их на корректность и сообщает о подобных конфликтах имен как о многократ- ных декларациях. Конфликты с определениями, относящими ся к разделам 2, 3C и 3S, проверяются автоматически. Контроль других определений может быть инициирован с помощью опции -l (например, опция -lm включает контроль деклараций, относящихся к разделу 3M, то есть к матема- тической библиотеке). Следует настоятельно рекомендо вать верификацию C-программ.@