El 28/09/10 14:41, lasizoillo escribió:

Hola Javi,

He estado Googleando pero no encuentro forma de trabajar directamente con la
memoria, ni equivalentes a malloc/free, etc. ¿Existe alguna forma de hacer
un malloc() desde Python, y en caso de no existir se os ocurre alguna forma
de determinar la memoria máxima que podría asignar un script en Python?
muchas gracias!

Cuando quieras usar funciones de c puedes hacerlo sin complicarte
demasiado mediante ctypes:
http://docs.python.org/library/ctypes.html

Con ctypes he conseguido justo lo que estaba buscando, muchas gracias!!

Tan solo un detalle, el script funciona correctamente cuando se ejecuta en máquinas de 32-bits, pero en 64-bits genera un SegFault al hacer el primer free(), ¿A alguien se le ocurre que puede estar pasando o como podría hacer debug? strace no está aportando mucha información:

        (..)
        write(1, "1 MB\n", 51 MB)                   = 5
        --- SIGSEGV (Segmentation fault) @ 0 (0) ---
        +++ killed by SIGSEGV +++

El script está disponible en:

        http://pastebin.com/nTHBrU7Z

Como decía, malloc() está funcionando correctamente en las 2 arquitecturas, pero free() falla en x86_64 con un 'Violación de segmento', gracias!!

Saludos,

--
Santi Saez
http://woop.es
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a