2010-06-27 4 views
1

J'ai un programme C et un programme Python sur la même machine. Le programme C génère des données dans des structures imbriquées. Quelle forme d'IPC est le meilleur moyen de transmettre ces données au programme python?Envoi de données binaires sur IPC de C vers Python

La sérialisation en C (en particulier les structures imbriquées) est un véritable ours, d'après ce que j'entends, en raison du manque de bibliothèques de sérialisation. Je ne suis pas très familier avec la mémoire partagée, mais je suppose que la mise en forme des structures C peut ne pas être très agréable au programme python quand il s'agit de l'alignement de la mémoire et des pointeurs suivants. La bibliothèque ctype et struct semble être uniquement pour les structures non imbriquées. Jusqu'à présent, ce que je pense est:

Envelopper toutes les données dans le programme C dans un format xml ou json, l'écrire via socket au programme python, puis laisser le programme python interpréter les données au format xml/json. Il semble très lourd avec beaucoup de frais généraux.

De meilleures idées?

+1

Vous pouvez jeter un oeil sur ce sujet http://stackoverflow.com/questions/3001827/os-independent-inter-program-communication-between-python- et C – Aif

Répondre

2

Je pense que vous avez répondu à votre propre question. JSON est certainement un bon choix. Il n'est également pas très difficile de faire votre propre sérialisation en C.