Книга: Разработка приложений в среде Linux. Второе издание
8.6.2. Предварительная загрузка библиотек
8.6.2. Предварительная загрузка библиотек
В некоторых случаях вместо замены целой библиотеки совместно использования возникает необходимость замены лишь нескольких функций. Вследствие того, что динамический загрузчик выполняет поиск функций, начиная с первой загруженной библиотеки, и продолжает искать в порядке очереди среди массы библиотек, было бы удобно иметь возможность помещать альтернативную библиотеку в начало списка для замены только необходимых функций.
Пример может служить zlibc
. Эта библиотека заменяет файловые функции библиотеки С функциями, которые работают со сжатыми файлами. При открытии файла zlibc
ищет как запрашиваемый файл, так и gzip-версию файла. Если запрашиваемый файл существует, zlibc
в точности воспроизводит функцию библиотеки С, но если файла нет, а вместо него обнаруживается gzip-версия, библиотека распаковывает gzip-файл безо всякого уведомления приложения. Связанные с ней ограничения описаны в документации, zlibc
позволяет значительно увеличить количество свободного пространства на диске, разумеется, за счет снижения скорости. Существуют два способа предварительной загрузки библиотеки. Для действия только на определенные программы, можно установить переменную окружения для необходимых случаев:
LD_PRELOAD=/lib/libsomething.o exec /bin/someprogram $*
Кроме того, как и с zlibc
, может возникнуть потребность предварительно загрузить библиотеку для всех программ в системе. Самый простой способ для этого — добавить в файл /etc/ld.so.preload
строку, которая указывает библиотеку, подлежащую загрузке. Для случая zlibc
строка будет выглядеть следующим образом:
/lib/uncompress.о
- 8.6. Работа с совместно используемыми библиотеками
- Загрузка модулей Apache
- Просмотр библиотек документов
- Создание библиотек
- Создание библиотек документов
- Создание библиотек форм
- Создание библиотек рисунков
- Создание папки в библиотеке
- Настройка библиотеки
- Использование параметров библиотек документов
- Обеспечение безопасности библиотеки
- Удаление библиотеки