Главная » Просмотр файлов » GCC - The Complete Reference

GCC - The Complete Reference (537669), страница 53

Файл №537669 GCC - The Complete Reference (GCC - The Complete Reference) 53 страницаGCC - The Complete Reference (537669) страница 532015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 53)

Вызов б1вуш() возвращает адреса функций, Обращение к функции с1с1ове ( ) отсоединяет (()е(асйе) текущую программу от загруженной разделяемой библиотеки. Если к динамической библиотеке не присоединено больше ни одной программы, то она выгружается из памяти. Функция б1вггог ( ) возвращает строку описания ошибки, произошедшей при последнем вызове одной из функций Е1ореп(), 61с1ове(), 61вуш() .

Прн отсутствии ошибок 61еггог() возвращает значение НтЛ ь. Следующая программа будет при выполнении загружать разделяемую библиотеку 11ЬвауЕп. во и вызывать из нее две функции: /« вау.с «/ Мьпс1пае «11Есп.Ь« $1пс1п<)а <ве<11о.Ь« 1пе ша1п(ьпе агдс,сЬаг «агдч[>) ( чо1й «Ьап<тзез сЬаг *еггогз чоЫ (*вауЬе11о)(чоЫ)( чоЫ (*ваувошееиьпд)(сЬаг *>( Ьап()1е = ((1ореп(«11ЬвауЕп.во",неьр ьааг)з ЕЕ(еггог = 61еггог()) ( ргьпсЕ(«««в~п",аггог)з ехьв (1); > вауЬе11о = 61вуш(Ьапй1а,«вауЬе11о«)( 1Е(еггог = 61еггог(>) ( ргьпсЕ(«з«в1п",еггог)г ехье(1)к > ваувошесььпд = 61вуш(ьап()1е,«ваувошееЬЕпд«)к 1Е(еггог = ((1еггог()) ( ргьпЕЕ(«9«в1п«,еггог)з ехьс(1)к 240 Часть (((.

Внутренняя структура и окружение ваупе11о()к ваувошесьвпд("тьтв ьв вовесИпд") г о1с1ове(папа1в)к ) Директивой йтпс1ийе в программу включается заголовочный файл 61йсп. Ь, который содержит прототипы используемых функций и некоторые другие определения. В начале функции пштп () находятся следующие объявления: указателя идентификатора для обращения к разделяемой библиотеке *Ьапб1е; указателя на строку сообщения об ошибке *ехкок; и указателей для каждом вызываемой из библиотеки функции. В командной строке для компиляции программы нашего примера необходимо указать разделяемую библиотеку, которая содержит используемые программой основные функции для использования динамических библиотек: 3 дсс вау.с -1с1 -о вау Загрузка в память разделяемой библиотеки выполняется вызовом функции 61ореп() .

При этом в аргументах необходимо указать имя библиотеки и значение флага, который определяет способ загрузки функций лри их вызове из библиотеки. При вызове а1ореп() выполняется последовательный поиск требуемой разделяемой библиотеки ло ее имени в следующих вариантах расположения: ° Если имя библиотеки начинается с символа наклонной черты "/", то считается, что оно содержит полный или относительный путь к файлу. При этом имя и расположение библиотеки должны быть указаны точно, в других местах поиск не проводится. В противном случае, когда имя начинается с любого другого символа, выполняется поиск библиотеки с указанным именем последовательно в вариантах расположения, описанных далее н этом списке.

° В каждом из каталогов списка переменной окружения ьр ыввлву рдтн. (В системах 1)МХ имена каталогов в таких списках разделяются двоеточием ": ".) в Среди библиотек из списка разделяемых библиотек, который содержится н файле /еес/1й. во. сасЬе. Для поддержки этого списка применяется утилита Ыс К 1д. ° В каталоге /ивг/11Ь.

° В каталоге /11Ь. ° В текущем каталоге. Второй аргумент вызова функции с)1 орел ( ) — флаг способа загрузки библиотеки. Он может иметь следующие значения. При значении втьр ыозг все функции библиотеки сразу загружаются в память и после этого становятся доступными для вызова. Прн значении флага втър ьдвт загрузка каждой функции задержинается до тех лор, пока ее имя не будет передано функции й1вутя( ) . Каждое из двух этих значений флага может быть соединено с помощью ключевого слова Ов со значением втьр аьовдь. При этом все внешние вызовы загружаемой динамической библиотеки разрешаются вызовом функций из других динамических библиотек.

Последние при этом также загружаются в память машины. Глава 12. Использование библиотек и способы компоновки 24 1 В нашем примере вызов 61ву>а( ) с идентификатором библиотеки (уже полученным из функции >21ореп () ) и именем требуемой функции библиотеки возвращает адрес памяти для вызова названной функции. После обращений к 61ореи() и б1вуат() вызывается функции 61еггог(). Благодаря этому программа может определять любые ошибки и выдавать по ним сообщения. Утилиты для работы с объектными файлами и библиотеками Обслуживание библиотек и расположенных в них объектных файлов состоит из достаточно устоявшихся действий.

Они зависят от применяемых соглашений об именах файлов и уровня организации вашей системы. Несмотря на широкие возможности для работы с библиотеками, предоставляемые программами дсс и аг, в некоторых обстоятельствах возникает необходимость применения других утилит. Например, может понадобиться проверить содержимое какого-либо двоичного файла в выполнить некоторые его преобразования, или нужно перестроить отдельную библиотеку, или изменить порядок поиска библиотек. Конфигурирование поиска разделяемых библиотек Утилита 1бсопбдд выполняет две основные функции работы с разделяемыми библиотеками. Во-первь>х, она создает и обновляет динамические компоновочные связи (1!п)>я) между разделяемыми библиотеками.

Эти связи служат для того, чтобы программы использовали последние и наиболее актуальные версии библиотек. Вовторых, утилита 1бсопгдд создает полный список доступных разделяемых библиотек и записывает его в файл /есс/1>з. вс. сасце. Утилита 1бсопд1д считывает список каталогов для поиска разделяемых библио>ек из файла /еес/1б. во.сопб, Затем она выполняет в этих каталогах (вместе с каталогами /11Ь и /ивг/11Ь) поиск любых разделяемых библиотек, при необходимости обновляя их динамические связи, и заносит все найденные и обработанные библиотеки вместе с их связями в список, который сохраняет в файле /евс/ 14. во. сасце, Имена каталогов в списке, который находится в файле /евс/ 16.

во. сопг, могут отделяться друг от друга символами перевода строки, символами табуляции (отступами), двоеточиями или пробелами. Файл /еес/16. во. сасце имеет не текстовый формат, ручное редактирование этого файла не предусмотрено. Перед построением файла /еес/16. во. сасЬе утилита 1>зсопгад анализирует имя и содержимое каждой библиотеки и создает динамические связи библиотек таким образом, чтобы при выполнении программ использовались новейшие версии библиотек. Например, при загрузке программой библиотеки 11Ь>21. во.

2 через установленную для этой библиотеки динамическую компоновочную связь (11пк) может в действительности загружаться библиотека с именем 1зЬ>11-2. 2. 4. во. При выпуске новой версии этой библиотеки, содержащей исправления допущенных ошибок (например, 11Ь61-2. 2. 5. во или 11Ь61-2. 3. О. во), утилита 16сопбдд 242 Часть )И. Внутренняя структура и окружение тв 1дсапб19 -и По опции -и программа 1сзсопйзд ВЫВОДИТ СПИСок всЕх СОЗдаваЕмых диНамических связей и описания всех выполняемых действий. Полный список опций приводится в таблице )2.3. Таблица 12.3.

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

солт. указывает формат выходного файла каша /вка/1д. ва.аааьв. поле стк может содержать следующие доступные значения: а1д, пвн или сатрап. Па умолчанию применяется сатрап. Выводит список опций программы и на этом завершает ее работу. --сактат = В ва --Ье1р Па этой апции утилита тдаапсся обновляет динамические связи библиотек в каталогах, указанных в командной строке. При этом не создается выходной кэш-файл.

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

Выводит апиаания выполняемых программой действий. Равносильна опции -к дзтватаку --пваяв --чахЬавв Выводит информацию а версии программы, Равносильна опции -н. Опция указывает не создавать динамические компоновочные связи (Кпхз). --чвкв1ап обновит существующую динамическую связь 11Ьс11. но. 2, установив сс на новую версию. Однако при выпуске принципиально новой версии, использование которой может повлиять на выполнение старых программ (скажем, 11Ьс11-3. О. О.

во), существующая динамическая связь с именем 11Ьс11. но. 2 сохраняется и создается новая связь с именем 11Ьс11. ао. 3. Запуск утилиты 1гзсопй1д должен выполняться от илгени привилегированного пользователя. Поэтому перед применением этой утилиты следует зарегистрироваться в системе как супсрпользователь (гоо!).

Следующая команда создаст все необходимые новые динамические связи и сгенерирует новую версию файла /евс/16. ао. сасЬе: Глава 12. Использование библиотек и способы компоновки 243 Вывод из объектных файлов имен программных символов ь пт 11Ьс.а В таблице 12.4 содержится список опции командной строки, поддерживаемых утилитой п]в. Таблица 12.4. Опции утилиты пл] рииив Оиивииии То же, что и --рс1пс-е11е-пата. То же, что и --аеЬпд-ауте.

То же, что и г -востас Ьвс. Действует по умолчанию. То же, что и --аевапд1е. То же, что и --упмкес.. -в -с [суре] Выводит программные символы, предназначенные для использования при отладке. Обычно они не выводятся. Имена символов преобразовываются из сокращенной формы е полную (Оегпапд[еб зугпЬо] пагпез]. То есть применяется Леманглирование имен объектного уровня в их представление пользовательского уровня. При применении атой опции в выходном списке имена символов выводятся в том же виде, в котором они были определены в исходном коде. При указании типа деманглера поле суре может содержать одно из допустимых значений: апес, дпп, 1пс1а, аст, ьр, еад, дпп-чз, 3ача, опас или сотрад. — аевапд1е [ суре] Для динамических объектов, таких как разделяемая библиотека, зта опция выводит адреса динамически перемещаемой адресации вместо обычного смещения.

Характеристики

Тип файла
DJVU-файл
Размер
6,08 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6358
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее