Python Librerie dinamiche

Da Andreabont's Wiki.

E' possibile caricare in python delle librerie dinamiche e chiamare le funzioni contenute. Questo è possibile tramite il modulo ctypes di python3.

Caricare una libreria dinamica

from ctype import *
libc = ctypes.CDLL("libc.so.6")

Chiamare una funzione della libreria dinamica

Per chiamare una funzione abbiamo bisogno del suo simbolo dinamico, nel nostro esempio useremo il simbolo "time" che corrisponde alla funzione time() della libreria standard del C che restituisce il tempo unix.

>>> libc.time(None)
1433853349

E' anche possibile assegnare un puntatore ad una funzione python in modo che, se chiamata, chiama la funzione della libreria:

>>> mia_fuzione = getattr(libc, 'time')
>>> mia_funzione(None)
1433853349