[SemiOT]Pack y unpack
Francesc Alted
falted en pytables.org
Jue Sep 30 09:47:55 CEST 2004
Hola,
Lo que preguntas es muy genérico, pero intentaré darte alguna pista (aunque
a lo mejor no es lo que quieres).
Una vez tengas los datos en el buffer binario recibido en el socket del
programa C, simplemente has de definir una estructura parecida a esta:
typedef struct {int *i; char *s; float *f;} pstruct;
con los campos iguales a tu definición del struct en python. Después defines
un puntero a esta estructura:
pstruct *ps;
y le asignas la dirección de tu buffer:
ps = (pstruct *)buffer;
A partir de ahi, ya puedes acceder a la info:
int = ps->i; str = ps->s; float = ps->f;
Saludos,
A Dijous 30 Setembre 2004 06:43, Fernando Blat Peris va escriure:
> Hola a todos,
>
> estoy utilizando el método pack del módulo Struct y SuperStruct para transformar
> a datos binarios unos structs que tengo en C.
>
> La idea es formar en python un diccionario con unos campos equivalentes a los de
> C, binarizar dicho diccionario utilizando pack y enviarlo por un socket del
> programa en python para que sea leído por el socket de un programa en C.
> Utilizo lo de binarizar porque he leído que es la forma natural de transformar
> estructuras a C.
>
> Bueno, la parte de python en el proceso está clara y no tengo problema, pero no
> me aclaro a leer los datos binarios en C ni con qué librería ni nada, de ahí a
> que esto sea un SemiOT.
>
> Lo pregunto aquí por si alguien lo ha hecho alguna vez. Si molesta la pregunta
> no contestad y punto, que lo entenderé sin problema :)
>
> Un saludo.
--
Francesc Alted
Más información sobre la lista de distribución Python-es