Ancien Protocole Tampon¶
Obsolète depuis la version 3.0.
Ces fonctions faisaient partie de l'API de l'ancien protocole de tampons dans Python 2. Dans Python 3, ce protocole n'existe plus, mais les fonctions sont toujours exposées pour simplifier le portage de code Python 2.x. Elles se comportent comme une abstraction de compatibilité du nouveau protocole de tampons, mais sans vous donner de contrôle sur la durée de vie des ressources acquises lorsqu'un tampon est exporté.
Il est donc recommandé d'appeler PyObject_GetBuffer()
(ou les codes y*
ou w*
à la famille de fonctions PyArg_ParseTuple()
) pour obtenir une vue d'un tampon sur un objet, et PyBuffer_Release()
lorsque la vue peut être libérée.
-
int
PyObject_AsCharBuffer
(PyObject *obj, const char **buffer, Py_ssize_t *buffer_len)¶ Retourne un pointeur vers un emplacement de mémoire en lecture seule utilisable en tant qu'entrée basée sur des caractères. L'argument obj doit prendre en charge l'interface de tampon de caractère à segment unique. En cas de succès, retourne
0
, définit buffer à l'emplacement de la mémoire et buffer_len à la longueur de la mémoire tampon. Retourne-1
et affecte une exceptionTypeError
en cas d'erreur.
-
int
PyObject_AsReadBuffer
(PyObject *obj, const void **buffer, Py_ssize_t *buffer_len)¶ Retourne un pointeur vers un emplacement de mémoire en lecture seule contenant des données arbitraires. L'argument obj doit prendre en charge l'interface de tampon lisible à segment unique. En cas de succès, retourne
0
, définit buffer à l'emplacement de la mémoire et buffer_len à la longueur de la mémoire tampon. Renvoie-1
et affecte l'exceptionTypeError
en cas d'erreur.
-
int
PyObject_CheckReadBuffer
(PyObject *o)¶ Retourne
1
si o prend en charge l'interface de mémoire tampon lisible à segment unique. Sinon, renvoie0
. Cette fonction réussit toujours.Notez que cette fonction tente d'obtenir et de libérer une mémoire tampon, et les exceptions qui se produisent lors de l'appel des fonctions correspondantes seront supprimées. Pour que les erreurs vous soient signalées, utilisez
PyObject_GetBuffer()
à la place.
-
int
PyObject_AsWriteBuffer
(PyObject *obj, void **buffer, Py_ssize_t *buffer_len)¶ Retourne un pointeur vers un emplacement de mémoire accessible en écriture. L'argument obj doit prendre en charge l'interface de mémoire tampon de caractère à segment unique. En cas de succès, retourne
0
, définit buffer à l'emplacement de la mémoire et buffer_len à la longueur de la mémoire tampon. Renvoie-1
et affecte l'exceptionTypeError
en cas d'erreur.