QNA > C > Come Aprire E Leggere File Eseguibili Da Un File .So In Linux

Come aprire e leggere file eseguibili da un file .so in Linux

Presumo che questo sia un modo mal formulato di chiedere come usare il codice eseguibile contenuto in una libreria di oggetti condivisi (nome file con suffisso .so).

Ci sono due modi, che equivalgono alla stessa cosa ai livelli più bassi. Il linking loader carica il file in memoria all'avvio di un eseguibile che è legato alla libreria specificata in fase di esecuzione. Questo è il modo normale e di gran lunga più comune per accedere al codice contenuto. Naturalmente, questo presuppone che la libreria corrispondente sia specificata al linker e che ci siano chiamate a funzioni/subroutine che sono compilate nel codice oggetto principale dell'eseguibile.

L'altro modo è che il codice usi l'API dlopen() che fa parte della libreria C standard. Questo permette al codice di runtime di aprire una libreria di oggetti condivisi e di legarsi al codice usando i simboli nominati che sono contenuti nella libreria. Ci sono troppi dettagli su questo metodo per descriverli qui, ma si possono trovare tutorial sui metodi abbastanza facilmente. Questo è un modo per implementare "plug-in" che permettono il caricamento dinamico di pezzi di funzionalità che sono usati per estendere o fornire alcune caratteristiche specifiche di un corpo di codice più grande.

Di Alexi

Sono davvero necessari 88 tasti per suonare pezzi di pianoforte classico? :: Come risolvere il problema della chiusura di un file exe
Link utili