Seite 1 von 1

Daten zwischen einem Python und einem C Programm austauschen

Verfasst: Sonntag 8. Januar 2012, 22:36
von wellnestom
Hi, ich hab folgendes Problem:
Ich habe ein Python Programm das mir in einer while-Schleife alle 25 Millisekunden neue Werte errechnet und sie in Variablen schreibt. Nun soll ein parallel laufendes C Programm diese Werte weiterverarbeiten.
Kann ich irgendwie die Speicheradresse der Variablen in Python rausfinden und in C einfach einen Zeiger darauf setzen?
Ich hab schon den Umweg über eine Datei versucht, das klappt aber nicht so gut weil der Dateizugriff zu lange dauert wenn der Rechner noch auf andere Dateien zugreift.
Ich benötige aber spätestens nach 30 Millisekunden neue Werte in meinem C Programm.
Kann mir jemand weiterhelfen oder einen Tipp geben?
Mir gefällt die Lösung mit 2 Programmen die parallel laufen zwar auch nicht, es geht aber leider nicht anders.

Gruß Tom

Re: Daten zwischen einem Python und einem C Programm austaus

Verfasst: Sonntag 8. Januar 2012, 23:05
von BlackJack
@wellnestom: Welches System? Muss es plattformunabhängig sein? Ich würde `mmap` versuchen.

Re: Daten zwischen einem Python und einem C Programm austaus

Verfasst: Montag 9. Januar 2012, 02:23
von EyDu
Ansonsten ist auch eine Lösung über Sockets schnell implementiert.

Re: Daten zwischen einem Python und einem C Programm austaus

Verfasst: Montag 9. Januar 2012, 15:02
von wellnestom
@BlackJack: Debian.
Ich denke es wird wohl auf die Sockets rauslaufen. Das ist vermutlich die einfachste Methode.

Danke euch!

Re: Daten zwischen einem Python und einem C Programm austaus

Verfasst: Dienstag 24. Januar 2012, 17:35
von theo.puke
Kann man das nicht auch über ein Datenbankdatei, auf die beide Programme zugreifen können, lösen?
EDIT: Sorry, hab überlesen, dass das schon probiert wurde.

Re: Daten zwischen einem Python und einem C Programm austaus

Verfasst: Dienstag 31. Januar 2012, 23:23
von NiklasRosenstein
Warum nicht einfach eine Dll per ctypes einbinden die die Werte verarbeitet?

Re: Daten zwischen einem Python und einem C Programm austaus

Verfasst: Mittwoch 1. Februar 2012, 02:49
von BlackJack
@NiklasRosenstein: Weil das dann nicht zwei parallel laufende Programme sind. Das ist laut erstem Beitrag eine Vorbedingung an der man nichts ändern kann.