Veröffentlicht 26. Juli 200619 j hi, hab ein problem. ich möchte mit meinem c-programm datensätze bearbeiten. diese datensätze stammen aus einem assembler-programm. ich weiß, dass über die argumente des c-programms eine adresse mitgegeben werden soll. weiß aber nicht genau wie das alles genau funktionieren soll. hat jmd vllt ein paar gute literaturquellen zu dem thema oder weiß sogar einer bescheid. thx
26. Juli 200619 j Für was für ein Betriebssystem soll das denn sein? Du könntest zwar einen Zeiger auf die übergebene Adresse lenken, wenn du das aber bei einem aktuellem BS machst wirst du meiner Meinung nach eine Access Violation bekommen.
27. Juli 200619 j Hallo, Für was für ein Betriebssystem soll das denn sein? Du könntest zwar einen Zeiger auf die übergebene Adresse lenken, wenn du das aber bei einem aktuellem BS machst wirst du meiner Meinung nach eine Access Violation bekommen. Da die beiden Programme in unterschiedlichen virtuellen Adressbereichen laufen, kann man davon ausgehen. Zumindest unter Unix/Linux gäbe es noch die Möglichkeit mittels fork() zu arbeiten und dann die Adressbereiche des Kind-Prozesses (Assemblerprogramm) in den Vaterprozess zu mappen. Von dort aus können dann auch die Daten ausgelesen werden. Das ganze ist aber alles andere als portable und auch nicht notwendigerweise trivial zu implementieren. Nic
28. Juli 200619 j Stimmt sowas müsste mit CreateProcess unter Windows auch möglich sein, bin ich mir aber gerade nicht ganz sicher.
28. Juli 200619 j Der Ausgangsposter hat leider nichts vom verwendetet OS gesagt. Falls sein OS keinen Speicherschutz bieten sollte, dann könnte er schon einfach absolute Adressen übergeben... Bei modernen Betriebssysteme wird das allerdings nicht gelingen, solange er kein Shared Memory o.ä. zur Datenübergabe einsetzt. Man könnte die Datensätze auch in eine temporäre Datei speichern und den Dateinamen übergeben. Es gibt so viele Möglichkeiten, das Problem zu lösen
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.