[Python] ctypes e puntatore ad un array di stringhe
Marco Giusti
marco.giusti a posteo.de
Ven 21 Nov 2014 10:13:45 CET
On Tue, Nov 18 2014, Marco Giusti wrote:
> Salve a tutti,
>
> con ctypes vorrei richiamare una funzione C che ritorna **char. La
> funzione in causa assegna la memoria per le singole stringhe e per
> l'array stesso e lascia al chiamante l'onere di liberarla. Sebbene con
> ctypes riesca ad accedere ai singoli valori, non riesco ad accedere
> all'area di memoria puntate e di conseguenza non riesco a liberarla.
Penso di aver risolto giocando con i puntatori come in C. Spero di non
andare all'inferno per questo .)
Per la cronaca allego quanto fatto così, se avete voglia, potete anche
verificare la correttezza.
m.
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome: main.c
Tipo: text/x-csrc
Dimensione: 260 bytes
Descrizione: non disponibile
URL: <http://lists.python.it/pipermail/python/attachments/20141121/7b914e41/attachment.c>
-------------- parte successiva --------------
all: libmy.so a.out
run: libmy.so
LD_LIBRARY_PATH=. python my.py
libmy.so: my.c my.h
gcc -Wall -fPIC -g -c my.c
gcc -shared -Wl,-soname,libmy.so.1 -o libmy.so.1.0 my.o
ln -sf libmy.so.1.0 libmy.so.1
ln -sf libmy.so.1 libmy.so
a.out: libmy.so main.c
gcc -Wall -I. -L. -lmy -g main.c
clean:
rm my.o a.out libmy.so*
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome: my.c
Tipo: text/x-csrc
Dimensione: 352 bytes
Descrizione: non disponibile
URL: <http://lists.python.it/pipermail/python/attachments/20141121/7b914e41/attachment-0001.c>
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome: my.h
Tipo: text/x-chdr
Dimensione: 22 bytes
Descrizione: non disponibile
URL: <http://lists.python.it/pipermail/python/attachments/20141121/7b914e41/attachment.h>
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome: my.py
Tipo: text/x-python
Dimensione: 527 bytes
Descrizione: non disponibile
URL: <http://lists.python.it/pipermail/python/attachments/20141121/7b914e41/attachment.py>
Maggiori informazioni sulla lista
Python