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
Catégorie:Langage de programmation
 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
- ctypes_errno.py : lire la variable errno, code d'erreur C
 - ctypes_libc.py : accéder à la libc de manière portable
 - ctypes_stdint.py : types uint8_t, int32_t, ..., uint64_t
 - ctypes_tools.py : outils divers
 
Outils connexes :
- cpu_info.py : informations sur le processeur
 - os_tools.py : informations sur le système d'exploitation
 

