Wie Werte eines kompilierten Programms an ein beliebiges aufrufendes Programm zum Beispiel batch, php ... zurückgeben



  • Gibt es eine gute Methode wie man bearbeitete Daten von einem kompilierten C++ Programm abrufen kann? Zum Beispiel bearbeitet das Programm eine Tabelle und ich will die veränderte Tabelle dann zurückhaben... Man könnte vielleicht einen mit irgendwelchen Daten in der Größe der Tabelle als Argument in *argv[] bei main mitübergeben, aber das erscheint nicht wirklich optimal. Wäre schön, wenn mit jemand einen Hinweis geben könnte



  • Ja, es gibt eine gute Möglichkeit. Bzw. sogar zwei:

    1. Gib die Daten auf stdout aus.
    2. Schreib die Daten in ein File.


  • @hustbaer
    Ja stimmt, das klappt auf jeden Fall, aber dann sinkt die Performance wahrscheinlich...



  • Naja, andere Möglichkeit die Daten an ein beliebiges anderes Programm zu übergeben gibt's halt nicht.
    Was deine Performance-Sorge angeht: erstmal ausprobieren.

    Falls du dann wirklich ein Performance-Problem feststellst... auf Linux kannst du die Files ja z.B. in einem tempfs speichern. Das sollte in den allermeisten Fällen schneller sein als das Programm es schafft Daten zu generieren.

    Bzw. was stdout angeht: das kannst du direkt wieder in ein anderes Programm "rein-pipen". Was auch sehr sehr flott ist.



  • @hustbaer
    ok danke, dann mach ich es erstmal so



  • Allgemein kann man diverse IPC Lösungen wählen, aber das hängt von der Plattform ab.
    Das einfachste sind Pipes, FIFOs, POSIX oder SYSV Messages Queues, SYSV SHMEM, Sockets, RPC, CORBA (IMHO nutzt das kaum noch jemand), …


Log in to reply