5224571620

5224571620



Interfejs dl udostępnia cztery funkcje do pracy z obiektami współdzielonymi. to: dlopen, dlclose,dlsym, dlerror.

Poniżej pokazano kod źródłowy programy, który korzysta z interfejsu dl. Zwróćmy uwagę, że nie ma tutaj wstawionego pliku nagłówkowego pieng.h. Oznacza to tyle, że w czasie kompilowania programu funkcje zdefiniowane w tym pliku nie muszą być wcale dostępne (bo mogą np. jeszcze nie być zaimplementowane). Ładowanie biblioteki odbywa się „w locie”, w trakcie działania programu. Za pomocą funkcji dlopen ładowana jest biblioteka libpleng_shared.so a za pomocą funkcji dlsym odszukiwana jest w tej bibliotece funkcja hello_pl, która następnie jest wykonywana. Program ten kompiluje się standardowo. Zwróćmy tylko uwagę, że program łączony jest (opcja -i) z biblioteką libdi, która implementuje interfejs dl.

Więcej szczegółów na temat użycia interfejsu dl można znaleźć na przykład w opracowaniu Program Library HOWTO (patrz literatura).

Kompilacja do postaci obiektowej.

S gcc -c dl_demo.c

Zwróćmy uwagę na -ldl. Ten interfejs zapewni mam możliwość ładowania V locie' biblioteki libpleng_shared.so.

S gcc -o dl_demo dl_demo.o -ldl

Wykonujemy program.

S export LD_LIBRARY_PATH="."

$ ./dl_demo


/*

dl_demo.c

Przykład zaczerpnięty z opracowania:

Program Library HOWTO

David A. Wheeler

version 1.00, 22 March 2002

http://www.dwheeler.com/program-library

Zmieniono tylko nazwę wołanej biblioteki (libpleng_shared.so) oraz nazwę wołanej funkcji (hello pl).

*/

/* Need dlfcn.h for the routines to dynamically load libraries */

#include <dlfcn.h>

#include <stdlib.h> łinclude <stdio.h>

/* Notę that we don't have to include "pieng.h".

However, we do need to specify something related; we need to specify a type that will hołd the value we're going to get from dlsym(). */

/* The type "simple_demo_function" describes a function that takes no arguments, and returns no value: */

typedef void (*simple_demo_function)(void);


int main(void) {


opracowali: dr inż. Artur Gramacki, dr inż. Jarosław Gramacki Język ANSI C (w systemie LINUX)

11



Wyszukiwarka

Podobne podstrony:
369 (4) 0, jakie są stopy aluminium do pracy w podwyższonej temperaturze? Są to stopy zawierające na
PIENIĄDZPpigęię Powszechny znak miary odniesiony do swoistych obiektów, jakimi są dobra lub usługi
DSC03822 (4) dop za s7.1. MOTYWOWANIE UCZESTNIKA ORGANIZACJI DO PRACY pięc sunl Motywowanie to zesta
Środki ostrożności: chodzenie do pracy Jeśli pozwalają na to warunki, pracuj w domu Układaj plan pra
42 Garlikowska M. do pracy lub szkoły. Powinno to być motywacją przewoźników do podwyższania jakości
19 Do pracy zespołowej przeznaczone są : Punkty: 1 Wybierz co najmniej jedną odpowiedź m o 3.
DSCN1765 30 trywany pod kątem ornej globalnej cechy, jaką jest jego przydaj do pracy. Zakłada zlę (z
Imm01 .6 Wprowadzenie do układu odpornościowego Cytokiny są to różnorodne cząsteczki, które przenos
Ryszard Barcik, Marcin Jakubiec czeniem i odnoszone do pozycji wobec konkurentów). Są to działania s
_PKl_2006_©^oler^^usłow_Pakiety Javy Java dostarcza nam do dyspozycji tzw. pakiety - są to swoiste
„Zbiory pytań lub sytuacji służące do badania własności jednostek (są to testy projekcyjne) lub grup
CCF20061214073 ZAKOŃCZENIE Problemy moralne wkroczyły do polskich firm. Nie są to już kwestie, któr
DSCF2019 ■ można zaliczyć do jednego z siedmiu układów ■Są to; układ jednoskośny, trójskośny, rombow
13262 Wprowadzenie do MatLab (32) M-pliki są to zwykłe pliki tekstowe, które tworzy sic za pomocą ed
„Zbiory pytań lub sytuacji służące do badania własności jednostek (są to testy projekcyjne) lub grup
zaliczane do materialnego prawa administracyjnego. Są to m.in. ustawa z dnia 29 grudnia 1992 r. o ra

więcej podobnych podstron