fork() Java-Programm mit mmap
-
Hallo,
ich wuerde gerne aus meinem C Programm heraus ein Java-Programm aufrufen. Dazu gibt es ja einige Moeglichkeiten wie z.B. fork() oder system(). Die Frage, welchen Weg ich am besten dafuer einschlagen sollte. Eine weitere Anforderung ist, dass ich Speicher zwischen den beiden Programmen teilen kann. (mmap bzw. Java's MemoryMappedFile)
-
exec bzw CreateProcess/ShellExecute sollte für dich passen. fork und system machen etwas anderes und mmap und memory mapped files sind was ganz verschiedenes.
-
Ich haette genauer sein sollen, ein paar mehr Anforderungen gibt es schon: Ich arbeite auf einem Linuxsysten, und dort wird das Programm auch laufen.
Und ich moechte nicht dass das Hauptprogramm anhaelt waehrend das Java-Programm durchlaeuft, sondern mehr eine busy-waiting Strategie verfolgen.
Btw.: fork & system machen genau das. Ich weiss nicht woher du die Information nimmst. Die verschiedenen Loesungen sind natuerlich nicht 100% deckungsgleich, aber definitiv nicht "etwas ganz anderes". Meine Frage zielt eben darauf ab, welche der Moeglichkeiten fuer meinen Anwendungsfall die geeigneteste ist.
Genauso deine Ausfuehrung zu mmap. mmap ist die Abbildungsfunktion fuer Dateien in den Speicher, Memory Mapped Files sind eben diese Dateien. Fuer mich ist das jetzt nicht unbedingt etwas "ganz verschiedenes".
-
Tml, ich dachte mmap wäre nur fürs mappen virtuellen Speichers
Aber fork ist ja nun was ganz anderes als exec, oder?
-
Korrekt, aber es geht ja auch darum diese beiden zusammen zu benutzen. Eben ob diese fork/exec Kobination geeigneter ist als system oder bspw. popen was mir spontan auch noch einfaellt. Und ob es moeglicherweise noch andere Optionen gibt. Und selbst bei fork/exec gibt es ja noch Variationen, insbesondere bei der exec Funktion die ja viele Geschwister hat.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (alle ISO-Standards) in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.