Movatterモバイル変換


[0]ホーム

URL:


Vés al contingut
Viquipèdial'Enciclopèdia Lliure
Cerca

Dlfcn.h

De la Viquipèdia, l'enciclopèdia lliure
dlfcn.h

Característiques tècniques
PlataformaC standard library


La càrrega dinàmica és un mecanisme pel qual unprograma informàtic pot, entemps d'execució, carregar unabiblioteca (o un altrebinari) a la memòria, recuperar les adreces de les funcions i variables contingudes a la biblioteca, executar aquestesfuncions o accedir a aquestes variables i descarregar el fitxer. biblioteca de memòria. És un dels 3 mecanismes pels quals un programa informàtic pot utilitzar algun altre programari; els altres dos sónenllaços estàtics ienllaços dinàmics. A diferència de l'enllaç estàtic i l'enllaç dinàmic, la càrrega dinàmica permet que unprograma informàtic s'iniciï en absència d'aquestes biblioteques, descobrir biblioteques disponibles i, potencialment, obtenir funcionalitats addicionals.[1]

Història

[modifica]

La càrrega dinàmica era una tècnica comuna perals sistemes operatius d'IBM perSystem/360, com araOS/360, especialment per ales subrutinesd'E/S, i per ales biblioteques d'execucióCOBOL iPL/I, i es continua utilitzant als sistemes operatius d'IBM per az/Architecture, com araz/OS. Pel que fa al programador d'aplicacions, la càrrega és en gran manera transparent, ja que majoritàriament la gestiona el sistema operatiu (o el seu subsistema d'E/S). Els principals avantatges són:[2]

  • Les correccions (pedaços) als subsistemes van arreglar tots els programes alhora, sense necessitat de tornar-los a enllaçar
  • Les biblioteques es podrien protegir de modificacions no autoritzades

El sistema estratègic deprocessament de transaccions d'IBM,CICS (de la dècada de 1970 en endavant) utilitza àmpliament la càrrega dinàmica tant per al seunucli com per a la càrrega normal delprograma d'aplicacions. Les correccions als programes d'aplicació es podrien fer fora de línia i les còpies noves dels programes modificats es poden carregar dinàmicament sense necessitat de reiniciar CICS (que es pot executar, i ho fa sovint,les 24 hores del dia, els 7 dies de la setmana).

Les biblioteques compartides es van afegir a Unix a la dècada de 1980, però inicialment sense la possibilitat de permetre que un programa carregués biblioteques addicionals després de l'inici.[3]

Usos

[modifica]

La càrrega dinàmica s'utilitza amb més freqüència en la implementació deconnectors de programari. Per exemple, els fitxers del connector d'"objecte compartit dinàmic"*.dsodelservidor web Apache sónbiblioteques que es carreguen en temps d'execució amb càrrega dinàmica. La càrrega dinàmica també s'utilitza en la implementació deprogrames informàtics on diverses biblioteques diferents poden proporcionar la funcionalitat requerida i on l'usuari té l'opció de seleccionar quina biblioteca o biblioteques oferir.[4]

En C/C++

[modifica]

No tots els sistemes admeten la càrrega dinàmica. Els sistemes operatiussemblants a UNIX com aramacOS,Linux iSolaris proporcionen càrrega dinàmica amb la biblioteca "dl" delllenguatge de programació C. Elsistema operatiuWindows proporciona càrrega dinàmica mitjançant l'API de Windows.

Resum

[modifica]
NomAPI estàndard POSIX/UNIXAPI de Microsoft Windows
Inclusió de fitxers de capçalera#include <dlfcn.h>#include < windows.h >
Definicions per a la capçaleradl

(libdl.so,libdl.dylib, etc. segons elsistema operatiu)

kernel32.dll
Carregant la bibliotecadlopenLoadLibrary

LoadLibraryEx<

Extracció de contingutsdlsymGetProcAddress
Descàrrega de la bibliotecadlcloseFreeLibrary

Referències

[modifica]
  1. «dlfcn.h(0p) - Linux manual page» (en anglès). [Consulta: 17 desembre 2023].
  2. «[https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/dlfcn.h.html The Open Group Base Specifications Issue 7, 2018 editionIEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008)Copyright © 2001-2018 IEEE and The Open Group]» (en anglès). [Consulta: 17 desembre 2023].
  3. «dlfcn.h» (en anglès americà), 09-03-2017. [Consulta: 17 desembre 2023].
  4. «dlfcn.h: dynamic linking - Linux Manuals (0p)» (en anglès). [Consulta: 17 desembre 2023].
Obtingut de «https://ca.wikipedia.org/w/index.php?title=Dlfcn.h&oldid=35546766»
Categoria:

[8]ページ先頭

©2009-2026 Movatter.jp