mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

LDFCN(4)                                               LDFCN(4)

НАЗВАНИЕ 
        ldfcn  -  программы доступа к объектным файлам обычного
        формата

СИНТАКСИС 
        #include 
        #include 
        #include 

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

        Интерфейс между  вызывающей  программой  и  программами
        доступа  основан на определяемом типе LDFILE. Тип опре-
        делен  во  включаемом  файле    как  структура
        struct  ldfile.  Основное  назначение  этой   структуры
        - обеспечить  унифицированный  доступ  как  к отдельным
        объектным файлам, так и к архивам объектных файлов.

        Функция ldopen(3X) размещает и инициализирует структуру
        LDFILE, возвращая в вызывающую программу  указатель  на
        структуру. Доступ к полям структуры LDFILE  обеспечива-
        ется макросами, определенными в :

        LDFILE *ldptr;

        TYPE (ldptr)   Магическое число, служащее для  различе-
                       ния элементов архива и отдельных объект-
                       ных файлов.

        IOPTR (ldptr)  Указатель на файл, возвращаемый функцией
                       fopen, и используемый стандартными функ-
                       циями ввода/вывода.

        OFFSET (ldptr) Файловый адрес начала объектного  файла;
                       не 0, если файл является элементом архи-
                       ва.

        HEADER (ldptr) Структура заголовка объектного файла.

        Функции доступа подразделяются на 4 группы:

        1.   Открытие и закрытие объектного файла:
                ldopen(3X) и ldaopen [см. ldopen(3X)]
                   (открытие объектного файла);
                ldclose(3X) и ldaclose [см. ldclose(3X)]
                   (закрытие объектного файла).

        2.   Чтение заголовков, данных из таблицы имен и инфор-
             мации о номерах строк:
                ldahread(3X)
                   (чтение архивного заголовка элемента  архив-
                   ного файла);
                ldfhread(3X)
                   (чтение заголовка объектного файла);
                ldshread(3X) и ldnshread [см. ldshread(3X)]
                   (чтение заголовка секции объектного файла);
                ldtbread(3X)
                   (чтение  элемента  таблицы  имен  объектного
                   файла);
                ldgetname(3X)
                   (получение символического имени из  элемента
                   таблицы имен или из таблицы цепочек);
                ldlread(3X), ldlinit, ldlitem [см. ldlread(3X)]
                   (работа с таблицей номеров строк).

        3.   Поиск начала секции, информации о настройке ссылок
             или таблицы номеров строк, относящихся  к  опреде-
             ленной секции:
                ldohseek(3X)
                   (поиск необязательного заголовка  объектного
                   файла);
                ldsseek(3X) и ldnsseek [см. ldsseek(3X)]
                   (поиск секции объектного файла);
                ldrseek(3X) и ldnrseek [см. ldrseek(3X)]
                    (поиск информации о настройке ссылок);
                ldlseek(3X) и ldnlseek [см. ldlseek(3X)]
                    (поиск таблицы номеров строк);
                ldtbseek(3X)
                    (поиск таблицы имен объектного файла).

        4.   Получение индекса элемента таблицы имен объектного
             файла:
                ldtbindex(3X)

        Эти функции детально описаны в соответствующих разделах
        Справочника.

        После успешного поиска (функциями третьей группы) теку-
        щая позиция в файле устанавливается на начало найденной
        информации.

        Все  функции,   кроме   ldopen(3X),   ldgetname(3X)   и
        ldtbindex(3X), возвращают значения SUCCESS или  FAILURE
        (эти   константы   определены   во   включаемом   файле
        ). Ldopen(3Х) и ldaopen [см. ldopen(3Х)] возв-
        ращают указатель на структуру LDFILE.

        Дополнительные  средства  доступа  к  объектному  файлу
        обеспечиваются набором макросов, определенных  в  файле
        . Эти макросы являются прямыми аналогами стан-
        дартных функций ввода/вывода, осуществляющим  чтение  и
        обработку файлов. Макросы используют  поле  дескриптора
        файла из структуры LDFILE.

        Предоставляются следующие макросы:

             GETC (ldptr)
             FGETC (ldptr)
             GETW (ldptr)
             UNGETC (c, ldptr)
             FGETS (ldptr)
             FREAD ((char *) ptr, sizeof (*ptr), nitems, ldptr)
             FSEEK (ldptr, offset, ptrname)
             FTELL (ldptr)
             REWIND (ldptr)
             FEOF (ldptr)
             FERROR (ldptr)
             FILENO (ldptr)
             SETBUF (ldptr, buf)
             STROFFSET (ldptr)

        Макрос STROFFSET вычисляет адрес таблицы цепочек. Отно-
        сительно других макросов следует обратиться к описаниям
        соответствующих стандартных функций ввода/вывода.

        При редактировании связей вызывающей программы  следует
        подключить библиотеку программ доступа к объектным фай-
        лам libld.a.

СМ. ТАКЖЕ 
        fseek(3S),  ldahread(3X),  ldclose(3X),  ldgetname(3X),
        ldfhread(3X), ldlread(3X),  ldlseek(3X),  ldohseek(3X),
        ldopen(3X),  ldrseek(3X),  ldsseek(3X),   ldshread(3X),
        ldtbindex(3X), ldtbread(3X),  ldtbseek(3X),  stdio(3S),
        intro(5).

ПРЕДОСТЕРЕЖЕНИЯ 
        Макрос FSEEK, определенный в файле , обращает-
        ся к стандартной функции ввода/вывода fseek(3S). Нельзя
        использовать  FSEEK  для  позиционирования относительно
        конца архивного файла, поскольку конец архивного  файла
        не обязательно совпадает с концом одного из содержащих-
        ся в архиве объектных файлов.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк