Операционная система UNIX. Руководство программиста




Какие функции целесообразно включать в библиотеку? - часть 2


Например, getgrent(3C) (см. Справочник программиста) редко применяется в стандартных утилитах ОС UNIX. Некоторые ее версии требуют более 1400 байт данных. Такие функции лучше не включать в разделяемую библиотеку. Можно импортировать глобальные, но не локальные (статические) данные.

Не включайте функции, затрудняющие сопровождение библиотеки

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

Включайте функции, используемые другими функциями библиотеки

Лучше, чтобы библиотека была замкнутой. Например, printf(3S) обращается ко многим подпрограммам стандартной библиотеки ввода/вывода. Разделяемая библиотека, содержащая printf(3S), должна содержать и эти подпрограммы.

Примечание

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




Содержание  Назад  Вперед