Ctypes

Un article de Haypo.

(Différences entre les versions)
Version du 19 février 2008 à 22:28 (modifier)
Haypo (Discuter | Contributions)
(Divers)
← Différence précédente
Version du 19 février 2008 à 22:31 (modifier) (défaire)
Haypo (Discuter | Contributions)
(Hello World!)
Différence suivante →
Ligne 11 : Ligne 11 :
Hello World! Hello World!
13 13
 +
 +== Pour définir une structure ==
 +
 + from ctypes import Structure, Union
 +
 + class user_regs_struct(Structure):
 + _fields_ = (
 + ("ebx", c_ulong),
 + ("ecx", c_ulong),
 + ("edx", c_ulong),
 + ("esi", c_ulong),
 + ...
 + )
 +
 + _sifields_t = (...)
 + class siginfo(Structure):
 + _fields_ = (
 + ("si_signo", c_int),
 + ("si_errno", c_int),
 + ("si_code", c_int),
 + ("_sifields", _sifields_t)
 + )
 + _anonymous_ = ("_sifields",)
== Modules == == Modules ==

Version du 19 février 2008 à 22:31

Retour à la page précédente Retour aux langages de programmation

ctypes est une bibliothèque Python permettant d'accéder aux fonctions et symboles d'une bibliothèque externe (en particulier, codée en C).

Sommaire

Hello World!

$ python
>>> libc=cdll.LoadLibrary('libc.so.6')
>>> libc.printf("Hello World!\n")
Hello World!
13

Pour définir une structure

from ctypes import Structure, Union

class user_regs_struct(Structure):
   _fields_ = (
      ("ebx", c_ulong),
      ("ecx", c_ulong),
      ("edx", c_ulong),
      ("esi", c_ulong),
      ...
   )

_sifields_t = (...)
class siginfo(Structure):
   _fields_ = (
        ("si_signo", c_int),
        ("si_errno", c_int),
        ("si_code", c_int),
        ("_sifields", _sifields_t)
   )
   _anonymous_ = ("_sifields",)

Modules

Outils connexes :

Articles connexes